От Java documentation ссылки:
MemoryUsage объекта представляет собой снимок использования памяти. Экземпляры класса MemoryUsage обычно создаются методами, которые используются для получения информации об использовании памяти для отдельного пула памяти виртуальной машины Java или кучи или памяти без кучи виртуальной машины Java в целом.
MemoryUsage объект содержит четыре значения:
инициализации представляет начальный объем памяти (в байтах), что запросы виртуальной машины Java от операционной системы для управления памятью во время запуска.
представляет собой объем используемой памяти (в байтах).
представляет собой объем памяти (в байтах), который гарантированно будет доступен для использования виртуальной машиной Java. Количество фиксированной памяти может меняться со временем (увеличение или уменьшение).
max представляет собой максимальный объем памяти (в байтах), который может использоваться для управления памятью. Его значение может быть неопределенным. Максимальный объем памяти может меняться со временем, если он определен.
Объем используемой и фиксированной памяти всегда будет меньше или равен max, если max определен.
Распределение памяти может быть неудачным, если оно пытается увеличить используемую память таким образом, что используется> совершено, даже если используется < = max все равно будет истинным (например, когда система находится на низком уровне в виртуальной памяти).
Посмотрите на это link, чтобы узнать о различных API, связанных с памятью.
Ознакомьтесь с этим вопросом SE для типов памяти и внутренних блоков Heap и Non Heap.
How is the java memory pool divided?
Я не нашел никакой информации о CollUsed
и я подозревавший ошибку типа в этом вопросе. Я подозреваю, что это может быть committed
память, если я не ошибаюсь.
Просьба перекрестно проверить один раз на точный API.
JConsole моментальный снимок не отображается в сообщении. Я не знаю почему. но вы можете проверить атрибуты therse от JConsole или JVisualVM. – Mahendra