2016-09-25 7 views
1

は、メモリがより小さな部分に分割される鉱山理解当たりG1の方がポーズ時間は長くなりますがスループットは低いのはなぜですか? G1はより少ない休止時間が、より低いスループットを与えるなぜ

、今や完全より小さい部分で実行されなければならない(低いスループットは、GCが秒より合計時間を実行されることを意味します)完全なヒープ。実際、完全なヒープ上で実行されているわけではなく、複数のバックグラウンドスレッドが並行して実行されており、デッドオブジェクトの最大数を含むメモリブロックが最初にクリアされているため、フルGCは存在しないと言うことができます。休憩時間が少ない。

より大きいメモリが小さいブロックで分割されているため、スループットが低いため、複数のGCスレッドを単一ブロックではなく、より小さなブロックで実行する必要があります。だから、ほとんどの時間は忙しくなります

これは間違いありませんか?

さらに、4GBを超えるヒープでG1が優れている理由は?私はそれがより小さなブロッカーと休止時間に分かれるため、すべてのヒープサイズでよりうまくいくはずだと信じています。だから、なぜGBが4 GBを超えるヒープのために提案されているのですか?

+0

直観的には、回収コストを償却するための呼吸室として、非常に大量の追加メモリが潜在的に与えられると、並列コレクタはより綿密に*より効率的です。実際のワークロードでは、どちらが効率的で、どれがあなたに適しているかを測定する必要があります。 – the8472

答えて

0

G1は、ライブオブジェクトのマーキングを同時に使用しますが、世界をクリーンアップするデッドオブジェクトを使用します。したがって、一時停止時間は世界的なGC(例えばパラレル・スカベンジ)よりも短くなりますが、ライブ・オブジェクトをマーキングするのに必要なリソースが少なく、ライブ・オブジェクトのリマークを行うために必要な時間が長くなります。同時マーキング段階)。

関連する問題