Я обновил информацию.

я проблемы с памятью в приложении, и мне нужна помощь в понимании этой статистики.

Unix 'top' показывает эту статистику для моего процесса

VSZ: 37.4g
RSS: 20.0g 

Таким образом, это означает, что 20 г в настоящее время заменены для процесса и в использовании.

Однако, когда я печатаю статистику из моего приложения с помощью класса Runtime, я получаю следующее:

Runtime.totalMemory() : 9.8G
Runtime.freeMemory()  : 3.6G
Runtime.maxMemory()  : 14.3G

Почему [Runtime.totalMemory () - Runtime.freeMemory ()] не соответствует RSS? Это память, используемая в данный момент процессом. Существует огромная разница между двумя числами.

Кроме того, среда выполнения возвращает неиспользованную память (Runtime.freeMemory ()) обратно в ОС для использования другими процессами?

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

Ответы на вопрос(1)

Ваш ответ на вопрос