0

注: cycle-collection タグが必要です。今回はサイクルコレクションが本題なのですが、タグを作るにはポイントが足りません。また、私はすでにタグの最大数に達しています。reference-cycles タグも意味があります。それも存在しません。

より良いコンピューター言語を作るにはどうすればよいかについて多くのアイデアを持っていますが、最先端のガベージ コレクターを作成することに夢中になっています。

Apple と Microsoft (Windows 8 用) が参照カウントに移行していることに気付きました。どうやら、通常のガベージ コレクションにはオーバーヘッド メモリが多すぎることがわかり、メモリが不足したときのスラッシングが気に入らなかったようです。

しかし、参照内のループによって制限されないプログラミング スタイルが必要な場合は、参照ループをスキャンして適切に処理するには、潜在的な参照ループを複数回通過するアルゴリズムが必要になるため、通常の参照カウントは改善のようには思えません。

現在、プログラムの実行と並行してループをスキャンすることが可能であることを示唆する論文がいくつかありますが、私はそれらを読んで迷っています。

たとえば、「David F. Bacon および VT Rajan による参照カウント システムでの同時サイクル コレクションhttp://researcher.ibm.com/files/us-bacon/Bacon01Concurrent.pdf」「DAVID F. BACON による純粋な参照カウント ガベージ コレクター」、 CLEMENT R. ATTANASIO、VT RAJAN、STEPHEN E. SMITH & HAN B. LEE」および「David F. Bacon、Perry Cheng、VT Rajan によるガベージ コレクションの統一理論」 http://www.cs.virginia.edu/ ~cs415/reading/bacon-garbage.pdf

接続されたものを含むすべてのループを見つけ、試験的に参照カウントを自己参照量だけ減らし、オブジェクトが変更されている間に安全にそれを行う方法を誰かに説明してもらえますか?

難しい注文のようです。

ダーティオブジェクトまたはダーティページの再スキャンを伴う「ほぼ同時のガベージコレクション」を覚えていますが、これが同じ種類のものかどうかはわかりません。

ループのスキャンを少し試してみたところ、ループにどれだけのメモリを浪費しても、ループを追跡できるほぼローカルなアルゴリズムはないと確信しました。それは本当に非ローカルプロパティです。ループのタグ付けのようなものはありません。

とにかく、並列アルゴリズムを理解している人はいますか? 誰かが私にそれを説明できますか?

編集: http://researcher.ibm.com/files/us-bacon/Paz05Efficient.pdf その論文は有望に見えます。理解できると確信できるところまで到達できると仮定しても、ノンブロッキング並列アルゴリズムは非常に難しいため、公開されたアルゴリズムにバグがあることはよくあることです。そして、それらを修正することは、可能な場合でも困難です。私は経験からこれらの事実の両方を知っています.

また、「スライド ビュー」が何を意味するのかを正確に確認したい :/

4

0 に答える 0