3

遅延の影響を受けやすいアプリには、キャッシング データ (TG に存在する) と、YG で消滅する存続期間の短いオブジェクトがあります。マイナー GC 時間とメジャー GC 時間に大きな違いがあることがわかりました。TGのサイズが比較的大きいことが関係していると思われます。 GC 時間が TG size とどのように相関するかを説明できる人はいますか。マイナー GC は非常に頻繁で高速です。

4

2 に答える 2

2

YG のマイナー コレクションを生き残ったオブジェクトは、TG/Old 世代に移動され、YG のスペースが解放されます。YG のサイズは、マイナー コレクションに時間がかからず、より頻繁に実行できるように小さく保たれています。そして、まだ参照を持っているこれらのマイナー GC オブジェクトの間に、TG に移動されます。

したがって、TG のサイズは大きくなります。これは、通常、いくつかの YG クリーンアップに耐えた大きなオブジェクトがこのセグメントに移動するためです。また、TG でのクリーンアップはあまり頻繁に実行されないため、より大きなメモリを割り当てることができます。

したがって、マイナー GC は YG 内のオブジェクトをクリーンアップしますが、メジャー GC は TG だけでなく YG もクリーンアップします。

于 2012-11-30T09:38:48.473 に答える
0

要点は、GC 時間は TG のサイズではなく、TG 内のオブジェクトの数によって決まるということです。パフォーマンスが重要なアプリケーションでは、キャッシュにヒープを使用しないでください。オフヒープ キャッシュをサポートする既存のキャッシング ライブラリは多数あります。

于 2012-11-30T09:35:28.130 に答える