Java には、いくつかの主要なガベージ コレクターがあります。以下に、一般的なガベージ コレクターのいくつかとその長所と短所を示します。
1.シリアルコレクター
·利点: シンプルかつ効率的で、シングルスレッド環境に適しており、小規模なアプリケーションやクライアント アプリケーションのパフォーマンスが向上します。
短所: ガベージ コレクションに使用できるスレッドは 1 つだけであり、マルチコア プロセッサの利点を十分に活用できません。
2. パラレルコレクター
利点: ガベージ コレクションに複数のスレッドを使用すると、マルチコア プロセッサを最大限に活用し、ガベージ コレクションを高速化できます。
短所: ガベージ コレクション中にアプリケーションの一時停止時間が長くなるため、応答時間に敏感なアプリケーションには適していません。
3. CMS (同時マークスイープ) コレクター
利点: 同時ガベージ コレクションにより一時停止時間が短縮され、高い応答時間を必要とするアプリケーションに適しています。
短所: より多くのフラグメントが生成されるため、メモリ空間が不連続になり、大きなオブジェクトを割り当てるパフォーマンスに影響を与える可能性があります。
4. G1 (ガベージファースト) コレクター
利点: 一時停止時間が予測可能な同時および並列のガベージ コレクションは、大容量のメモリを備えたアプリケーションや応答時間に対する高い要件を持つアプリケーションに適しています。
欠点: CMS と比較してスループットがわずかに低く、多数の存続期間の短いオブジェクトを処理する場合はパフォーマンスが低下する可能性があります。
上記の一般的なガベージ コレクターに加えて、ZGC (Z ガベージ コレクター) や Shenandoah コレクターなど、他の特殊目的のガベージ コレクターもあります。これらはすべて、一時停止時間を短縮し、高スループットを提供することに特化しています。
これらのガベージ コレクターのパフォーマンスとアプリケーション シナリオは Java バージョンによって異なる場合があることに注意してください。したがって、ガベージ コレクターのドキュメントと特定の Java バージョンのベスト プラクティスを理解しておくことが重要です。