Java: потребление памяти в Activity Monitor на Mac против JVisualVM

#java #macos #opengl #memory #lwjgl

#java #macos #opengl #память #lwjgl

Вопрос:

Я пытаюсь разработать механизм рендеринга вокселей на Java с помощью LWJGL 2.

Я запускаю свое приложение из Eclipse, и я установил начальный размер кучи в 1024M, а максимальный размер кучи в 2048M в меню «Запустить конфигурации».

Когда я смотрю на потребление памяти моей программой в Java VisualVM, для меня это показывает около 500-1000 МБ используемой кучи.

Диаграмма потребления памяти в Java VisualVM

Диаграмма

Но монитор активности на Mac показывает мне, что используется 20 ГБ оперативной памяти. Каковы могут быть возможные причины этого огромного несоответствия?

Ответ №1:

Размер кучи используется только простыми объектами Java.

Если вы используете встроенную библиотеку, такую как LWJQL, вы можете выделить гораздо больше встроенной памяти.

Эти собственные объекты данных часто требуется явно освободить, вызвав метод для объекта, когда он вам больше не нужен.