これは単純な質問のように思えますが、このテーマについて多くのことを読んだ後でも、決定的な答えは見つかりませんでした(おそらくそれはとても単純だからです)。
私の質問はこれです:ガベージコレクターがヒープ内のオブジェクトを圧縮すると、スタック内のオブジェクトへの参照はどのように更新されますか?私は2つの可能な解決策を考えることができます:
- スタック(およびヒープ内の参照)を調べて、オブジェクトの新しい場所を指すように参照を更新します。引っ越しに例えると、これはあなたの住所を持っている人に手紙を送り、新しい住所で住所録を更新するように頼むようなものです。
- 何らかのルックアップテーブルを提供します。これは、ローカルの郵便局に転送先を残すようなものです。
ガベージコレクターは主にこれら2つの方法のいずれかを使用しますか?他の方法?どちらも?
stackoverflow.com/questions/3799203/…およびen.wikipedia.org/wiki/…を
—
Gort the Robot
@StevenBurnapは私が間違っていれば私を修正しますが、あなたがリンクしたスレッドには決定的な答えがなかったと信じています。彼らはこの正確な質問についても推測しているようでした。誤読している可能性があります。質問への回答を提供してくれたとしても、気にしないのであれば、将来のSEユーザー(および私自身)に回答をここに要約すると役立つと思います
—
-todorojo
あなたが話していることを表す用語は、「移動するガベージコレクター」です。率直に言って、それらがどれほど一般的に使用されているのかわかりません。
—
ロボット