モジュール 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が定義されている場合、使用済メモリーおよびコミット済メモリーの量は、常にmax以下になります。 used <= maxがtrueの場合でも、used > committedになるように使用済メモリーを増やそうとすると、メモリー割当てが失敗することがあります。(たとえば、システムが仮想メモリーで不足している場合です)。
メモリー・プールの例を次に示します。
        +----------------------------------------------+
        +////////////////           |                  +
        +////////////////           |                  +
        +----------------------------------------------+

        |--------|
           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の値より大きい場合、または
      • committedは、max 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を表していない場合。