マーク アンド スイープに加えて、.Net と Java の両方のガベージ コレクターは圧縮フェーズも実行して、メモリの断片化を削減します。Flash 9 ガベージ コレクタの圧縮/最適化フェーズに関するドキュメントを見つけることができません。Flash には圧縮フェーズがありませんか?
2 に答える
Adobe が Flash で使用する AS3 の仮想マシンはオープンソースです。
http://www.mozilla.org/projects/tamarin/
そのソース コードには、MMgc と呼ばれる仮想マシンのメモリ マネージャーが含まれています。
MMgc は動かないコレクターを提供します。一度割り当てられると、オブジェクトはコレクターによって移動されません。これは、圧縮フェーズがないことを意味します。
MMgc に関するその他のドキュメントは、次の場所にあります。
https://developer.mozilla.org/en/mmgc
最近の作業のいくつかは、ソース リポジトリのドキュメント ディレクトリ内で文書化されています。
ええと、私はメモリ管理の問題にかなり深く関わっており、それについてアドビのエンジニアと話をしましたが、デフラグフェーズについての言及は聞いたことがありません。一方、彼らがそれを除外する可能性はかなり低いようです。デフラグフェーズがあった場合に予想されるような方法で、GC後に全体的なメモリ使用量が減少するのを確かに見ました。全体として、おそらくそのような段階があると思います。
しかし、私がかなり自信を持っているのは、どちらの方法でも公式の公開ドキュメントはないと思うということです。とにかく、私は確かに何も見たことがありません。誰かが他のことを知っているなら、私は喜んで撤回しますが、あなたが他の答えを得られない場合に備えて。