Для приложения я использую настройку кучи JVM Max при запуске как в тестовой среде, так и в производственной системе. Когда я подключаюсь через JMX для мониторинга приложения, я вижу, что максимальный размер кучи производственного приложения не такой, как у тестового приложения. Я использую -Xmx2000m как в тестовой среде, так и в тестовой среде, я получаю 1,864,171,520 B, а на производстве - 2,009,726,976 B.
Итак, мои вопросы - надежна ли эта информация. Версии Java и машины идентичны (Mac OS X 10.5).
-Если эта информация достоверна, то что могло быть причиной этого и как это можно изменить, чтобы обе системы вели себя одинаково для настройки максимального размера кучи.
JVM не будет автоматически выделять -Xmx объем памяти, поэтому очень незначительные различия в среде могут привести к тому, что две виртуальные машины будут иметь разные размеры процесса (а для 2 ГБ 139 МБ - это и, возможно, небольшая разница, не так ли?)
См. Этот пост на Использование памяти JVM.