Класс MemoryUsage
- java.lang.Object
-
- java.lang.management.MemoryUsage
public class MemoryUsage extends Object
Объект MemoryUsage представляет собой моментальный снимок использования памяти. Экземпляры класса MemoryUsage обычно создаются методами, которые используются для получения информации об использовании памяти отдельных пулов памяти виртуальной машины 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.
- Since:
- 1.5
Конструкторы
| Конструктор | Описание |
|---|---|
MemoryUsage(long init,
long used,
long committed,
long max) |
Создает объект |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
static MemoryUsage |
from(CompositeData cd) |
Возвращает объект |
long |
getCommitted() |
Возвращает объем памяти в байтах, выделенный для использования виртуальной машиной Java. |
long |
getInit() |
Возвращает объем памяти в байтах, который виртуальная машина Java изначально запрашивает у операционной системы для управления памятью. |
long |
getMax() |
Возвращает максимальный объем памяти в байтах, который может быть использован для управления памятью. |
long |
getUsed() |
Возвращает объем используемой памяти в байтах. |
String |
toString() |
Возвращает описательное представление этого использования памяти. |
Методы, объявленные в классе 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.
- Parameters:
-
init- начальный объем памяти в байтах, выделяемый виртуальной машиной Java; или-1если неопределён. -
used- объем используемой памяти в байтах. -
committed- объем выделенной памяти в байтах. -
max- максимальный объем памяти в байтах, который может быть использован; или-1если неопределён. - Throws:
-
IllegalArgumentException- если- значение
initилиmaxотрицательно, но не-1; или - значение
usedилиcommittedотрицательно; или -
usedбольше значенияcommitted; или -
committedбольше значенияmaxmaxесли определено.
- значение
Методы
getInit
public long getInit()
Возвращает объем памяти в байтах, который виртуальная машина Java изначально запрашивает у операционной системы для управления памятью. Этот метод возвращает -1 если начальный размер памяти неопределен.
- Returns:
- начальный размер памяти в байтах;
-1если неопределён.
getUsed
public long getUsed()
Возвращает объем используемой памяти в байтах.
- Returns:
- объем используемой памяти в байтах.
getCommitted
public long getCommitted()
Возвращает объем памяти в байтах, выделенный для использования виртуальной машиной Java. Этот объем памяти гарантированно доступен для использования виртуальной машиной Java.
- Returns:
- объем выделенной памяти в байтах.
getMax
public long getMax()
Возвращает максимальный объем памяти в байтах, который может быть использован для управления памятью. Этот метод возвращает -1 если максимальный размер памяти неопределён.
Этот объем памяти не гарантируется доступным для управления памятью, если он больше, чем объем выделенной памяти. Виртуальная машина Java может не выделить память, даже если объем используемой памяти не превышает этот максимальный размер.
- Returns:
- максимальный объем памяти в байтах;
-1если неопределён.
toString
public String 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 |
- Parameters:
-
cd-CompositeDataпредставляющийMemoryUsage - Returns:
- объект
MemoryUsage, представленныйcdеслиcdнеnull;nullв противном случае. - Throws:
-
IllegalArgumentException- еслиcdне представляетMemoryUsageс указанными выше атрибутами.
© 1993, 2020, 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.
https://docs.oracle.com/en/java/javase/11/docs/api/java.management/java/lang/management/MemoryUsage.html