Я обновил информацию.
я проблемы с памятью в приложении, и мне нужна помощь в понимании этой статистики.
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, настроенной с использованием общих и реплицированных кэшей. Мне нужно оптимизировать приложение, чтобы уменьшить объем памяти.