使用済み、コミット済み、および最大ヒープメモリの違い
1. 概要
この短い記事では、JVMのさまざまなメモリサイズメトリックの違いを確認します。
最初に、アダプティブサイジングがどのように機能するかについて説明し、次に、最大サイズ、使用済みサイズ、およびコミット済みサイズの違いを評価します。
2. 最大サイズとアダプティブサイジング
2つの値がJVMヒープのサイズを制御します: 1つは-Xmsフラグで指定された初期値で、もう1つは-Xmxチューニングフラグで制御された最大値です。
これらのフラグを指定しない場合、JVMはそれらのデフォルト値を選択します。 これらのデフォルト値は、基盤となるOS、使用可能なRAMの量、そしてもちろん、JVM実装自体によって異なります。
実際のサイズとデフォルト値に関係なく、ヒープサイズは初期サイズから始まります。 より多くのオブジェクトを割り当てると、それに対応するためにヒープサイズが大きくなる可能性があります。 ただし、ヒープサイズは最大ヒープサイズを超えることはできません。
簡単に言えば、
3. 使用サイズ
ここで、プログラムの開始以降にいくつかのオブジェクトを割り当てたとしましょう。 ヒープサイズは、新しいオブジェクトに対応するために少し大きくなる可能性があります。
使用済みスペースは、Javaオブジェクトによって現在占有されているメモリの量です。 常に最大サイズ以下です。
4. コミットサイズ
コミットされたサイズは、Java仮想マシンで使用できることが保証されているメモリの量です。 コミットされたメモリサイズは、常に使用サイズ以上です。
5. 結論
この短い記事では、最大ヒープサイズ、使用済みヒープサイズ、およびコミット済みヒープサイズの違いを確認しました。