java.lang.Object
java.lang.management.MemoryUsage
MemoryUsage 对象表示内存使用情况的快照。 MemoryUsage类的实例通常由用于获取Java虚拟机的单个内存池或Java虚拟机整体的堆或非堆内存的内存使用信息的方法构造。
MemoryUsage 对象包含四个值:
| Value | Description |
|---|---|
init |
表示 Java 虚拟机在启动期间从操作系统请求的用于内存管理的初始内存量(以字节为单位)。 Java 虚拟机可能会向操作系统请求额外的内存,也可能会随着时间的推移向系统释放内存。 init 的值可能未定义。 |
used |
表示当前使用的内存量(以字节为单位)。 |
committed |
表示保证可供 Java 虚拟机使用的内存量(以字节为单位)。提交的内存量可能会随时间变化(增加或减少)。 Java 虚拟机可能会向系统释放内存,并且 committed 可能小于 init。 committed 将始终大于或等于 used。 |
max |
表示可用于内存管理的最大内存量(以字节为单位)。它的值可能未定义。如果已定义,最大内存量可能会随时间变化。如果定义了 max,则使用和提交的内存量将始终小于或等于 max。如果内存分配尝试增加已用内存,那么即使 used <= max 仍然为真(例如,当系统虚拟内存不足时),used > committed 也可能会失败。 |
+----------------------------------------------+
+//////////////// | +
+//////////////// | +
+----------------------------------------------+
|--------|
init
|---------------|
used
|---------------------------|
committed
|----------------------------------------------|
max
MXBean 映射
MemoryUsage 映射到具有 from 方法中指定的属性的 CompositeData 。
- 自从:
- 1.5
-
构造方法总结
构造方法 -
方法总结
修饰符和类型方法描述static MemoryUsagefrom(CompositeData cd) 返回由给定的CompositeData表示的MemoryUsage对象。long返回提交给 Java 虚拟机使用的内存量(以字节为单位)。longgetInit()返回 Java 虚拟机最初从操作系统请求的用于内存管理的内存量(以字节为单位)。longgetMax()返回可用于内存管理的最大内存量(以字节为单位)。longgetUsed()以字节为单位返回已用内存量。toString()返回此内存使用情况的描述性表示。
-
构造方法详细信息
-
MemoryUsage
public MemoryUsage(long init, long used, long committed, long max) 构造一个MemoryUsage对象。- 参数:
init- Java 虚拟机分配的初始内存量(以字节为单位);或者-1如果未定义。used- 已用内存量(以字节为单位)。committed- 提交的内存量(以字节为单位)。max- 可以使用的最大内存量(以字节为单位);或者-1如果未定义。- 抛出:
IllegalArgumentException- 如果init或max的值是负数但不是-1;或者used或committed的值为负;或者used大于committed的值;或者committed大于maxmax的值(如果已定义)。
-
-
方法详情
-
getInit
public long getInit()返回 Java 虚拟机最初从操作系统请求的用于内存管理的内存量(以字节为单位)。如果初始内存大小未定义,则此方法返回-1。- 返回:
-
内存的初始大小(以字节为单位);
-1如果未定义。
-
getUsed
public long getUsed()以字节为单位返回已用内存量。- 返回:
- 以字节为单位的已用内存量。
-
getCommitted
public long getCommitted()返回提交给 Java 虚拟机使用的内存量(以字节为单位)。此内存量保证供 Java 虚拟机使用。- 返回:
- 提交的内存量(以字节为单位)。
-
getMax
public long getMax()返回可用于内存管理的最大内存量(以字节为单位)。如果未定义最大内存大小,则此方法返回-1。如果该内存量大于已提交的内存量,则不能保证该内存量可用于内存管理。即使使用的内存量不超过此最大大小,Java 虚拟机也可能无法分配内存。
- 返回:
-
以字节为单位的最大内存量;
-1如果未定义。
-
toString
返回此内存使用情况的描述性表示。 -
from
返回由给定的CompositeData表示的MemoryUsage对象。给定的CompositeData必须包含以下属性:属性名称 Type 在里面 java.lang.Long用过的 java.lang.Longcommitted java.lang.Long最大限度 java.lang.Long- 参数:
cd-CompositeData代表一个MemoryUsage- 返回:
-
如果
cd不是null,则由cd表示的MemoryUsage对象;null否则。 - 抛出:
IllegalArgumentException- 如果cd不代表具有上述属性的MemoryUsage。
-