プライマリ・コンテンツに移動
Java Platform, Standard Edition HotSpot仮想マシン・ガベージ・コレクション・チューニング・ガイド
リリース9
E90926-02
目次へ移動
目次

前
前へ
次

7 モーストリ・コンカレント・コレクタ

モーストリ・コンカレント・コレクタは、一部の作業をアプリケーションと同時に実行するため、このように呼ばれています。Java HotSpot VMには、2つのモーストリ・コンカレント・コレクタが含まれています。

モーストリ・コンカレント・コレクタのオーバーヘッド

モーストリ・コンカレント・コレクタは、(本来ならばアプリケーションで使用できるはずの)プロセッサ・リソースとメジャー・コレクションの一時停止時間の短縮をトレードオフします。

わかりやすいオーバーヘッドとしては、コレクションの並行処理部分で1つ以上のプロセッサが使用される点があげられます。N個のプロセッサを搭載したシステムでは、コレクションの並行処理部分で、使用可能なプロセッサのK/N (1 <= K <= ceiling{N/4})を使用します。並行処理を有効にすると、コンカレント・フェーズ中のプロセッサの使用以外にもオーバーヘッドが発生します。したがって、コンカレント・コレクタでは通常、ガベージ・コレクションによる一時停止が大幅に短くなる一方で、アプリケーションのスループットは他のコレクタと比べると若干低下する傾向があります。

複数の処理コアを搭載したマシンでは、コレクションの並行処理中にアプリケーション・スレッドがプロセッサを使用できるので、コンカレント・ガベージ・コレクタ・スレッドによってアプリケーションが一時停止されることはありません。これにより通常は一時停止が短くなりますが、この場合もアプリケーションで使用できるプロセッサ・リソースが少なくなるので、特にアプリケーションがすべての処理コアを最大限に使用する場合は処理速度の低下が予想されます。Nが増えると、コンカレント・ガベージ・コレクションに伴うプロセッサ・リソースの減少が小さくなり、コンカレント・コレクションのメリットが増大します。このような拡張の可能な制限の詳細は、「並行モードの失敗」を参照してください。

コンカレント・フェーズ中はガベージ・コレクションで1つ以上のプロセッサが使用されるため、一般に単一プロセッサ(シングル・コア)マシンではコンカレント・コレクタによるメリットはありません。