ホームページ  >  記事  >  Java  >  Java での CMS リサイクラーの簡単な紹介 (画像とテキスト)

Java での CMS リサイクラーの簡単な紹介 (画像とテキスト)

不言
不言転載
2018-09-28 13:59:012738ブラウズ

この記事では、Java の CMS リサイクラーについて簡単に紹介します (写真とテキスト)。必要な方は参考にしていただければ幸いです。

CMS (同時マーク スイープ) コレクター

マーク アンド クリア アルゴリズムを使用し、マルチスレッドの並列コレクションを使用するガベージ コレクターでもあります。

CMS の主な作業手順

CMS が動作するときの主な手順は、初期マーキング、同時マーキング、事前クリーニング、再マーキング、同時クリア、同時リセットです。初期マーキングと再マーキングはシステム リソース専用ですが、事前クリーニング、同時マーキング、同時クリア、同時リセットはユーザー スレッドと一緒に実行できます。したがって、アプリケーションの実行中にガベージ コレクションを実行できます。

Java での CMS リサイクラーの簡単な紹介 (画像とテキスト)

マーク アンド クリア アルゴリズムによると、初期マーキング、同時マーキング、および再マーキングはすべて、リサイクルが必要なオブジェクトをマークするためのものです。同時クリーンアップは、マーキングが完了した後にガベージ オブジェクトをリサイクルすることです。同時リセットとは、ガベージ コレクションの完了後に CMS データ構造とデータを再初期化して、次のガベージ コレクションに備えることを指します。

CMS リサイクル プロセス全体で、デフォルトでは、同時マーキングの後に事前クリーニング操作が行われます (事前クリーニングを実行しないようにパラメーター -XX:CMSPrecleaningEnabled を設定することもできます)。事前クリーニングは、正式なクリーニングの準備と確認に加えて、一時停止時間の制御も同時に行います。リマーキングは CPU 専用であるため、新世代 GC 発生直後にリマーキングがトリガーされると、一時停止時間が非常に長くなる可能性があります。この状況を回避するには、事前クリーニング中に新世代の GC が発生するのを待ち、履歴パフォーマンス データに基づいて新世代の GC が発生する時刻を予測し、その中間の時点で再マークを付けることができます。現在時刻と予測時刻。これにより、新世代GCと再マーキングとの重複を極力回避し、休止時間を極力短縮することができる。

CMS メイン パラメータ設定

-XX:ConcMarkSoupGC を使用して CMS リサイクラーを有効にします

-XX:ConcGCThreads 同時スレッド数を設定します

-XX: CMSInitiatingOccupancyFraction 現在の値を設定します。 旧世代の使用率が N に達すると、CMS リサイクルが実行されます。

-XX: UseCMSCompactAtFullCollection CMS は、ガベージ コレクションの完了後にデフラグを実行します。

-XX:CMSFullGCsBeforeCompaction N 回の CMS リサイクル後のメモリ圧縮を設定します。

-XX: CMSClassUnloadingEnabled CMS メカニズムを使用して Perm 領域のクラス データをリサイクルします

以上がJava での CMS リサイクラーの簡単な紹介 (画像とテキスト)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcnblogs.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。