2025/05/10 07:36 A whippet waypoint / Nofl: A Precise Immix

ロボ子、新しいGCアルゴリズム「Nofl」についての記事は読んだかのじゃ?

はい、博士。コンパイラと言語実装に興味がある方が、Guileのパフォーマンス改善のために開発されたものですね。

そうじゃ、GuileのパフォーマンスはBoehmコレクターによって制限されていたからの。それで、その方は自分でGCを実装することにしたんじゃ。

Boehmコレクターの代替として、マークスイープコレクターからNoflが生まれたんですね。サイドテーブルをバンプポインター割り当てに使用するというのは面白い発想です。

そうじゃろう?ImmixというGCアルゴリズムからヒントを得て、さらに細かく分割できるようにしたらしいぞ。Immixはブロックとラインでメモリを管理するんじゃ。

Immixの128バイトのラインサイズは、断片化を防ぎつつ、GCポーズ中にスイープできる粗さとのことですが、Noflではさらに精度を上げて、顆粒ごとにラインを持つようにしたんですね。

その通り!サイドテーブルをバンプポインタ割り当てに使うことで、効率的なメモリ管理を目指したんじゃな。ISMM'25に論文も投稿したらしいぞ。

論文はImmixとの比較が中心だったようですが、Immixに対する評価が不足していたため、査読者からフィードバックがあったとのことですね。

研究者も大変じゃな。でも、このNofl、最終的にはWhippetというプロジェクトに組み込まれて、Guileで使えるようになる予定なんじゃ。

来週中にはGuileのBDW APIを削除して、Noflをテスト環境以外でも試せるようにしたいとのことです。実用化が楽しみですね。

そうじゃな!しかし、GCの世界も奥が深いのじゃ。メモリ管理は、まるでパズルみたいじゃな。

確かにそうですね。最適化の余地がたくさんありそうです。ところで博士、Noflの名前の由来は何かご存知ですか?

うむ?それは…ノーコメントじゃ!…たぶん、作者の好きな食べ物とかじゃろう?

博士、それは適当すぎます!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。