モジュール java.management
パッケージ java.lang.management

クラスMemoryUsage

java.lang.Object
java.lang.management.MemoryUsage

public class MemoryUsage extends Object
MemoryUsageオブジェクトは、メモリー使用量のスナップショットを表します。 通常、MemoryUsageクラスのインスタンスは、Java仮想マシンの個々のメモリー・プールやJava仮想マシンのヒープまたはヒープ以外のメモリーに関するメモリー使用量情報を総括して取得するのに使用されるメソッドにより成り立っています。

MemoryUsageオブジェクトには、次の4つの値があります。

MemoryUsageオブジェクトの内容の説明
説明
init 起動中にJava仮想マシンがオペレーティング・システムから要求するメモリー管理のための初期メモリー量(バイト単位)を表す。 Java仮想マシンは、オペレーティング・システムから追加のメモリーを要求したり、システム時間の経過とともにメモリーを解放したりすることもできる。 initの値は指定しなくてもかまわない。
used 現在使用されているメモリーの量(バイト単位)を表す
committed Java仮想マシンが使用できることが保証されているメモリーの量(バイト単位)を表す。 コミットされたメモリーの量は、時間の経過とともに変化(増減)する。 Java仮想マシンはシステムに対してメモリーを解放できる。committedinit未満であることも可能。committedは、常にused以上になる。
max メモリー管理に使用できる最大メモリー量(バイト単位)を表す。 この値は定義しないことも可能。 定義する場合、メモリーの最大量は時間の経過とともに変化する可能性がある。 maxが定義された場合、usedおよびcommittedメモリーの量は常にmax以下になる。 used <= maxがtrueの場合でもused > committedなどのように、usedメモリーを増やそうとするとメモリーの割当てが失敗する可能性がある(たとえば、システムの仮想メモリーが少ない場合)。
メモリー・プールの例を次に示します。
        +----------------------------------------------+
        +////////////////           |                  +
        +////////////////           |                  +
        +----------------------------------------------+

        |--------|
           init
        |---------------|
               used
        |---------------------------|
                  committed
        |----------------------------------------------|
                            max
 

MXBeanのマッピング

MemoryUsageは、fromメソッドで指定された属性を持つCompositeDataにマッピングされます。
導入されたバージョン:
1.5
  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ
    説明
    MemoryUsage(long init, long used, long committed, long max)
    MemoryUsageオブジェクトを構築します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    指定されたCompositeDataによって表されるMemoryUsageオブジェクトを返します。
    long
    Java仮想マシンが使用するようコミットされたメモリーの量(バイト単位)を返します。
    long
    Java仮想マシンが初期にメモリー管理についてオペレーティング・システムから要求するメモリーの量(バイト単位)を返します。
    long
    メモリー管理に使用できる最大メモリー量(バイト単位)を返します。
    long
    usedメモリーの量(バイト単位)を返します。
    このメモリーの使用量の説明的表現を返します。

    クラス java.lang.Objectで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • コンストラクタの詳細

    • MemoryUsage

      public MemoryUsage(long init, long used, long committed, long max)
      MemoryUsageオブジェクトを構築します。
      パラメータ:
      init - Java仮想マシンが割り当てる初期メモリー量(バイト単位)。定義されていない場合は-1
      used - usedメモリーの量(バイト単位)。
      committed - committedメモリーの量(バイト単位)。
      max - 使用できる最大メモリー量(バイト単位)。定義されていない場合は-1
      例外:
      IllegalArgumentException - 次の場合
      • initまたはmaxが負の値で、-1ではない、または
      • usedまたはcommittedが負の値である、または
      • usedcommittedの値より大きい、または
      • committedmaxの値より大きい。定義されている場合はmax
  • メソッドの詳細

    • getInit

      public long getInit()
      Java仮想マシンが初期にメモリー管理についてオペレーティング・システムから要求するメモリーの量(バイト単位)を返します。 初期メモリー・サイズが未定義の場合、このメソッドは-1を返します。
      戻り値:
      メモリーの初期サイズ(バイト単位)。定義されていない場合は -1
    • getUsed

      public long getUsed()
      usedメモリーの量(バイト単位)を返します。
      戻り値:
      usedメモリーの量(バイト単位)
    • getCommitted

      public long getCommitted()
      Java仮想マシンが使用するようコミットされたメモリーの量(バイト単位)を返します。 このメモリーの量は、Java仮想マシンが使用するよう保証された量です。
      戻り値:
      committedメモリーの量(バイト単位)
    • getMax

      public long getMax()
      メモリー管理に使用できる最大メモリー量(バイト単位)を返します。 最大メモリー・サイズが未定義の場合、このメソッドは-1を返します。

      このメモリーの量がcommittedメモリーの量より大きい場合、このメモリー量はメモリー管理に利用できることが保証されません。 usedメモリーの量がこの最大サイズを超えない場合でも、Java仮想マシンはメモリーの割当てに失敗する可能性があります。

      戻り値:
      最大メモリー量(バイト単位)。定義されていない場合は-1
    • toString

      public String toString()
      このメモリーの使用量の説明的表現を返します。
      オーバーライド:
      toString、クラスObject
      戻り値:
      このオブジェクトの文字列表現
    • from

      public static MemoryUsage from(CompositeData cd)
      指定されたCompositeDataによって表されるMemoryUsageオブジェクトを返します。 指定されたCompositeDataは、次の属性を含む必要があります。
      指定されたCompositeDataに含まれる属性および型
      属性名
      init java.lang.Long
      used java.lang.Long
      committed java.lang.Long
      max java.lang.Long
      パラメータ:
      cd - MemoryUsageを表すCompositeData
      戻り値:
      cdnullでない場合はcdにより表されるMemoryUsageオブジェクト、そうでない場合はnull
      例外:
      IllegalArgumentException - cdが前述の属性を持つMemoryUsageを表さない場合。