この記事は GC に関連する最後の記事です。今回は、LZ がホットスポット JVM のガベージ コレクターに関連する主要なパラメーターと各パラメーターの説明をリストします。さっそく始めましょう。
ガベージ コレクター選択パラメーター
UseSerialGC: シリアルおよびシリアル古いコレクター (クライアント モードのデフォルト値) を使用するには、このパラメーターを有効にします。
UseParNewGC: ParNew およびシリアル古いコレクターを使用するには、このパラメーターをオンにします (推奨されません)。
UseConcMarkSoupGC: ParNew および CMS (古いシリアルが代替) コレクターを使用するには、このパラメーターをオンにします。
UseParallelGC: 並列スカベンジと並列古いコレクターを使用するには、このパラメーターをオンにします (サーバー モードのデフォルト値)。
UseParallelOldGC: 古い世代の並列古いコレクタを使用するには、このパラメータをオンにします (このパラメータは JDK1.5 以降は役に立ちません)。
各JVMメモリ領域のサイズに関連するパラメータ
Xms: ヒープの初期値。デフォルトは物理メモリの 1/64 で、最大値は 1G を超えません。
Xmx: ヒープの最大値。デフォルトは物理メモリの 1/4 で、最大値は 1G を超えません。
Xmn: 新世代のサイズ。
Xss: スレッドスタックサイズ。
PermSize: 永続世代の初期サイズ。デフォルトは物理メモリの 1/64 で、最大値は 1G を超えません。
MaxPermSize: 永続世代の最大サイズ。デフォルトは物理メモリの 1/4 で、最大値は 1G を超えません。
NewRatio: 古い世代に対する新しい世代の比率。たとえば、3 の場合、新しい世代はヒープの 1/4 を占め、古い世代は 3/4 を占めます。
SurvivorRatio: 新しい世代の Eden 領域と Survivor 領域の比率を調整します。デフォルトは 8 です。つまり、Eden 領域はサイズの 80%、2 つの Survivor 領域はそれぞれサイズの 10% です。 (注: このパラメータ設定は、レプリケーション アルゴリズムを説明する章のレプリケーション アルゴリズムのメモリが半分になるという問題を解決する方法です。レプリケーション アルゴリズムの章では、eden 領域が 80% の部分であり、survivor 領域は2 つ 10% その部分。)
ガベージ コレクターのパフォーマンスの一般パラメーター
PretenureSizeThreshold: 古い世代にプロモートされたオブジェクトのサイズ。デフォルトは0です。例えば10Mに設定すると、10Mを超えるオブジェクトはeden領域に配置されず、そのまま旧世代に入ります。
MaxTenuringThreshold: 旧世代に昇格するための最大年齢。デフォルトは 15 です。たとえば、10 に設定すると、オブジェクトは通常の GC 回数が 10 回行われた後に古い世代に配置されます。
DisableExplicitGC: System.gc() を無効にします。
並列コレクターのパラメーター
ParallelGCThreads: リサイクル中に開始されたスレッドの数。デフォルトは CPU の数と同じです。
GCTimeRatio: システムのスループットを設定します。たとえば、99 に設定すると、GC 時間比率は 1/1+99=1% となり、必要なスループットは 99% になります。それが満たされない場合、新しい世代のサイズは縮小されます。
MaxGCPauseMillis: ガベージ コレクションの最大一時停止時間を設定します。設定値が満たされない場合は、新しい世代のサイズが最初に削減されます。それでも満たされない場合は、スループットが犠牲になります。
同時コレクター パラメーター
CMSInitiatingOccupancyFraction: CMS コレクターをトリガーするメモリ比率。たとえば、60% は、メモリが 60% に達すると CMS 同時収集が開始されることを意味します。
UseCMSCompactAtFullCollection: これは前にも説明しましたが、CMS コレクターがガベージをクリーンアップするたびにメモリ デフレーションを送信するために使用されます。
CMSFullGCsBeforeCompaction: 複数の CMS ガベージ コレクションの後にメモリ圧縮をトリガーするように設定します。
結論
この記事は単なるリストであり、GC 関連のシリーズは終わりました。それでは、一緒に仮想マシンのソース コードの世界に入りましょう。
上記は JVM メモリ管理の詳細な説明です -- ガベージ コレクター パラメーター 詳細については、PHP 中国語 Web サイト (www.php.cn) に注目してください。

この記事では、Javaプロジェクト管理、自動化の構築、依存関係の解像度にMavenとGradleを使用して、アプローチと最適化戦略を比較して説明します。

この記事では、MavenやGradleなどのツールを使用して、適切なバージョン化と依存関係管理を使用して、カスタムJavaライブラリ(JARファイル)の作成と使用について説明します。

この記事では、カフェインとグアバキャッシュを使用してJavaでマルチレベルキャッシュを実装してアプリケーションのパフォーマンスを向上させています。セットアップ、統合、パフォーマンスの利点をカバーし、構成と立ち退きポリシー管理Best Pra

この記事では、キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPAを使用することについて説明します。潜在的な落とし穴を強調しながら、パフォーマンスを最適化するためのセットアップ、エンティティマッピング、およびベストプラクティスをカバーしています。[159文字]

Javaのクラスロードには、ブートストラップ、拡張機能、およびアプリケーションクラスローダーを備えた階層システムを使用して、クラスの読み込み、リンク、および初期化が含まれます。親の委任モデルは、コアクラスが最初にロードされ、カスタムクラスのLOAに影響を与えることを保証します


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

メモ帳++7.3.1
使いやすく無料のコードエディター

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター
