1

参照カウントを使用すると、参照されなくなった直後にオブジェクトを回収できます。GC 用に別のスレッドを実行する必要はありません。マークやスイープなどの他の GC メソッドは独自のスレッドで実行され、それがいつ実行されるかを判断できません 関数が戻るときに最も若い世代が回収される可能性がありますが、次の世代にプッシュされる他のオブジェクトもガベージである可能性があります。

決定された時間にオブジェクトを回収する他の GC メソッドはありますか?

4

1 に答える 1

2

「決められた時間に」とは、「サイクルがなければできるだけ早く」という意味であれば、いいえ。そのためには単純な参照カウントが必要です。そのすべての問題により、参照カウントの最適化(遅延参照カウントなど)を使用することさえできません。

「スコープの最後」のような時間が許容される場合は、可能です (ただし、お勧めできません)。その時点で使用している GC の形式を実行するだけです。もちろん、これは非常に非効率的であり、これが誰もそれを行わない理由の 1 つです (もう 1 つの理由は、唯一の利点である決定論的クリーンアップがほとんど必要とされず、明示的に処理する方が適切であることです)。インクリメンタル GC はこれを少し緩和するかもしれませんが、どの程度かはわかりません。

于 2013-01-12T13:37:29.723 に答える