理解するのは簡単JVM

Javaの仮想マシンのJVM

JVMがあるJRE の一部

データが中に配置されたときに、JVMの時間、データが異なる位置に分解されます

 

Javaの実行時のメモリ部門

スレッドの株式:

ヒープおよびメソッド領域

プライベートエリアスレッド:

VMスタック、ネイティブメソッドスタックとプログラムカウンタ

ヒープは、実際のオブジェクトを置きます

VMスタック入れ Javaのメソッド

ネイティブメソッドスタックが入れネイティブメソッドを

メソッド地区プット クラス情報、定数、静的変数

プログラムカウンタ  最初の数行にスレッドの実行

 

 

 

ヒープのポイント

新生児、老齢、永久に代わっ

新生児に分割エデンS0 S1 8 1 1

 

一般的なガベージコレクタ

 

 

 

シリアルコレクター:ねじ込み   それだけで使用するコレクションを完了するために、CPUやコレクション・スレッドを、他のすべての作業中にコレクションの最後まで、スレッドガベージコレクションを停止する必要があります。

 

parNew コレクター:マルチスレッドを考慮することができるシリアルマルチスレッド版

 

CMSのコレクター:明確なラベルに基づいて最短復旧時間目標コレクタアルゴリズムの一時停止

 

G1 コレクター:ガベージコレクタサーバ用でOracleのJDK 9 デフォルトの後にGCのオプション

長所:パラレルと同時、世代収集、空間の統合、予測可能な一時停止

 

ガベージコレクションのアルゴリズム:

レプリケーションのアルゴリズム

マーク - スイープアルゴリズム

整理するタグ - アルゴリズム

 

JVM のチューニング

 

クラスのライフサイクル:

負荷 接続(ベリファイ  準備  分析) 初期 使用 アン

 

ロード:の.class ファイルがディスクからメモリに読み込まれます

確認してください:バイトコードの正しさを検証します

準備:静的変数は、メモリクラスを割り当て、デフォルト値を与えられたために

分析:他のすべてのクラスローダが参照するクラスをロードします

 

タイプのクラスローダ

クラスローダを起動します

ロードするための責任なので、上のJREの目標、charsets.jarと下rt.jarのようJREのコア・クラス・ライブラリを、。

拡張クラスローダ

ロードを担当瓶のjreディレクトリの拡張EXT

システムクラスローダ

ロードするための責任クラスパスにクラスパッケージを

カスタムローダー

これは、ユーザー定義クラスのパッケージパスをロードする責任があります

 

リレーションシップクラスローダ:最大関係委員会

全体的な責任の委任メカニズム

ときに別の表示のClassLoader、及びそのようなものがクラスローダによってロードされ、また参照されるクラスに依存しない限り、クラスローダは、クラスをロードします

両親デリゲートメカニズム(モデル

、ターゲットを見つけるために、親クラスローダを委託見つけ、ケースでのパスにターゲットクラスをロードするために指し見つけることができません

 

JVMのチューニングmonitorコマンド

ガベージコレクションは、ヒープ内の領域を再利用スレッドの終焉とメモリ空間をスタックし、死ぬことを受けない、 JVMのガベージコレクションの管轄!

JPS:によってJPS クエリプロセスID pidの

Jinfoの:ビューで実行するJava 拡張プログラムパラメータ

見る JVMのパラメータを

Jinfoの-flags 11740

 

 

 

 

 

。チューニング

JVMのチューニングは、次の2つの主要の調整である指標

滞留時間:ガベージコレクションを行うためのガベージコレクタは、アプリケーションの実行時間を中断。-XX:MaxGCPauseMillis

スループット:時間の割合とガベージコレクションの合計時間: 1 /(N + 1)、1-1 /(1 + N)のスループット。-XX:GCTimeRatio = N

GCのチューニングステップ

1.プリントGCログ

-XX:+ PrintGCDetails -XX:+ PrintGCTimeStamps -XX:+ PrintGCDateStamps -Xloggc:C:/log/gc.log

Tomcatは直接変数JAVA_OPTSロードすることができます

主要な指標を得るために、ログの解析2.

理由の3. GC分析、JVM引数を最適化

並列スカベンジコレクタ(デフォルト)

ログ解析:

第1の同調提供メタスペースサイズ:スペース要素(のサイズを増加させる)-XX:MetaspaceSize = 64M -XX :MaxMetaspaceSize = 64M

第2の同調は、動的拡張が若い世代の増分(デフォルトは増加 20%)減少させることができるがYGC -XX:YoungGenerationSizeIncrement = 30

チューニングをマージ

-XX:+ PrintGCDetails -XX:MetaspaceSize = 64M -XX:MaxMetaspaceSize = 64M -XX:YoungGenerationSizeIncrement = 30 -XX:+ PrintGCTimeStamps -XX:+ PrintGCDateStamps -Xloggc:C:/log/gc-2.log

 

 

 

使用 G1コレクタはログを収集

-XX:+ PrintGCDetails -XX:+ PrintGCTimeStamps -XX:+ PrintGCDateStamps -XX:+ UseG1GC -Xloggc:./ログ/ GC-g1.log

 

おすすめ

転載: www.cnblogs.com/lkc123/p/11461483.html