В чем разница между CollectionUsage, PeakUsage, Usage? - PullRequest
1 голос
/ 04 июня 2010

В чем разница между полями CollectionUsage, PeakUsage, Usage в любом компоненте пула памяти?
Я видел их в пути любого приложения в окне jconsole:
вкладка mbeans> java.lang> пул памяти> выбрать любой компонент.
В правой панели мы можем видеть эти атрибуты.

1 Ответ

3 голосов
/ 04 июня 2010

Они все описаны в javadocs для MemoryPoolMXBean

Использование памяти

Метод getUsage () предоставляет оценку текущего использования пул памяти. Для сбора мусора пул памяти, объем используемой памяти включает в себя память, занятую всеми объекты в бассейне, включая оба достижимые и недоступные объекты.

В общем, этот метод является легкой операцией для получения примерное использование памяти. Для некоторых пулы памяти, например, когда объекты не упакованы непрерывно, этот метод может быть дорогим операция, которая требует некоторого расчет для определения текущего использование памяти. Реализация должна документ, когда это так.

Пиковое использование памяти

Виртуальная машина Java поддерживает пиковое использование памяти пула памяти так как виртуальная машина была запущена или пик был сброшен. Пик памяти использование возвращается getPeakUsage () метод и сбрасывается вызов метода resetPeakUsage ().

Порог использования сбора

Порог использования сбора является управляемым атрибутом, применимым только в какую-то сборку мусора бассейны. После виртуальной машины Java приложил усилия в восстановлении пространство памяти путем переработки неиспользованного объекты в пуле памяти у мусора время сбора, некоторое количество байтов в пулах памяти, которые наряжаются Собрано все равно будет в использовании. порог использования коллекции позволяет значение, которое будет установлено для этого числа байты такие, что если порог превышен порог использования коллекции уведомление о превышении будет отправлено по памятиMXBean. В дополнение порог использования коллекции будет затем увеличивается.

The isCollectionUsageThresholdSupported () метод может быть использован для определения эта функция поддерживается.

Виртуальная машина Java выполняет проверка порога использования коллекции на основа пула памяти. Эта проверка включено, если использование коллекции порог установлен на положительное значение. Если порог использования коллекции установлен на ноль, эта проверка отключена в этом пуле памяти. Значение по умолчанию нуль. Виртуальная машина Java выполняет использование коллекции проверка порога на мусоре время сбора.

Некоторые пулы памяти для сбора мусора может решить не поддерживать порог использования коллекции. За Например, пул памяти управляется только непрерывным одновременным мусором коллектор. Объекты могут быть размещены в этот пул памяти каким-то потоком пока неиспользованные предметы утилизируются одновременный сборщик мусора одновременно. Если нет четко определенное время сбора мусора что является наилучшим подходящим временем для проверить использование памяти, коллекции порог использования не должен быть поддерживается.

Порог использования сбора предназначен для контроля памяти использование после виртуальной машины Java приложил усилия в восстановлении пространство памяти. Использование коллекции может также контролироваться опросом и пороговый механизм уведомления описано выше для использования порог аналогичным образом.

...