Класс MemoryUsage
java.lang.Object
java.lang.management.MemoryUsage
public class MemoryUsage extends Object
Объект
Ниже приведен рисунок с примером пула памяти:
MemoryUsage представляет собой снимок использования памяти. Экземпляры класса MemoryUsage обычно создаются методами, используемыми для получения сведений об использовании памяти отдельным пулом памяти виртуальной машины Java, кучей или памятью вне кучи виртуальной машины Java либо виртуальной машиной Java в целом. Объект MemoryUsage содержит четыре значения:
| Значение | Описание |
|---|---|
init | представляет исходный объем памяти (в байтах), запрашиваемый виртуальной машиной Java у операционной системы для управления памятью при запуске. Виртуальная машина Java может запрашивать у операционной системы дополнительную память, а также со временем освобождать память и возвращать ее системе. Значение init может быть неопределенным. |
used | представляет объем используемой в данный момент памяти (в байтах). |
committed | представляет объем памяти (в байтах), гарантированно доступный для использования виртуальной машиной Java. Объем выделенной памяти может меняться со временем (увеличиваться или уменьшаться). Виртуальная машина Java может освободить память и вернуть ее системе, поэтому committed может быть меньше init. committed всегда будет больше или равно used. |
max | представляет максимальный объем памяти (в байтах), который может использоваться для управления памятью. Значение может быть неопределенным. Если максимальный объем памяти определен, он может меняться со временем. Объем используемой и выделенной памяти всегда будет меньше или равен max, если max определено. Выделение памяти может завершиться ошибкой, если оно приведет к увеличению используемой памяти так, что used > committed, даже если used <= max по-прежнему будет выполняться (например, когда в системе мало виртуальной памяти). |
+----------------------------------------------+
+//////////////// | +
+//////////////// | +
+----------------------------------------------+
|--------|
init
|---------------|
used
|---------------------------|
committed
|----------------------------------------------|
max
Сопоставление MXBean
MemoryUsage сопоставляется с CompositeData с атрибутами, заданными в методе from.- С версии:
- 1.5
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
MemoryUsage |
Создает объект MemoryUsage. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
static MemoryUsage |
from |
Возвращает объект MemoryUsage, представленный заданным объектом CompositeData. |
long |
getCommitted() |
Возвращает объем памяти в байтах, выделенной для использования виртуальной машиной Java. |
long |
getInit() |
Возвращает объем памяти в байтах, первоначально запрошенной виртуальной машиной Java у операционной системы для управления памятью. |
long |
getMax() |
Возвращает максимальный объем памяти в байтах, который может использоваться для управления памятью. |
long |
getUsed() |
Возвращает объем используемой памяти в байтах. |
String |
toString() |
Возвращает описание использования этой памяти. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создает и возвращает копию этого объекта. |
boolean |
equals |
Указывает, «равен» ли этот объект какому-либо другому объекту. |
protected void |
finalize() |
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии. Финализация устарела и подлежит удалению в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
int |
hashCode() |
Возвращает значение хеш-кода этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
final void |
wait() |
Переводит текущий поток в состояние ожидания, пока он не будет пробужден, обычно посредством вызова notify или прерывания. |
final void |
wait |
Переводит текущий поток в состояние ожидания, пока он не будет пробужден, обычно посредством вызова notify или прерывания, либо пока не истечет заданный интервал реального времени. |
final void |
wait |
Переводит текущий поток в состояние ожидания, пока он не будет пробужден, обычно посредством вызова notify или прерывания, либо пока не истечет заданный интервал реального времени. |
Подробное описание конструкторов
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
public static MemoryUsage from(CompositeData cd)
Возвращает объект
MemoryUsage, представленный заданным объектом CompositeData. Заданный объект CompositeData должен содержать следующие атрибуты: | Имя атрибута | Тип |
|---|---|
| init | java.lang.Long |
| used | java.lang.Long |
| committed | java.lang.Long |
| max | java.lang.Long |
- Параметры:
-
cd—CompositeData, представляющийMemoryUsage - Возвращает:
- объект
MemoryUsage, представленныйcd, еслиcdне равенnull; в противном случае —null. - Вызывает:
-
IllegalArgumentException— еслиcdне представляетMemoryUsageс описанными выше атрибутами.
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.