Как я могу оптимизировать использование памяти JVM? - PullRequest
5 голосов
/ 01 июня 2011

Я хотел бы спросить, знает ли кто-нибудь здесь способ, как оптимизировать использование памяти JVM? Мы используем оболочку Java-сервиса (YAJSW), которая вызывает JVM, а физическая память используется около 40 МБ. Я хочу уменьшить это, скажем, 5-10 МБ. Как мне этого добиться?

Пока у меня есть только следующая конфигурация:

java =-Xmx1024m

Я также пробовал это:

java =-Xms1024m -Xmx1024m -XX:NewSize=512m -XX:MaxNewSize=512m -XX:SurvivorRatio=2 -XX:PermSize=256m -XX:MaxPermSize=256m

Но эти параметры конфигурации не имеют никакого значения. Каковы будут правильные настройки конфигурации для этого? или, что еще мне нужно сделать, чтобы оптимизировать это?

Заранее благодарю за ответы.

Ответы [ 2 ]

1 голос
/ 01 июня 2011

Вы говорите о резидентной памяти или виртуальной? На моей машине простой while(true); в main без чего-либо еще уже дает мне 10 МБ резидентной памяти, в основном из-за отображенных в память библиотек r / o (libc, libm, librt, libpthread ...) и jars. Уменьшение, если вообще возможно, дополнительного объема памяти, или до 10 МБ в любом нетривиальном приложении, будет означать только больше подкачки, тем самым уменьшая скорость.

Виртуальная память, с другой стороны, составляет 1,1 ГБ на моей машине, которая может быть уменьшена в случае необходимости, но зачем это делать? Неиспользованная виртуальная память ничего не стоит.

Редактировать: Кроме того, вы можете взглянуть на другие Опции VM HotSpot , особенно MaxHeapFreeRatio.

0 голосов
/ 18 июня 2013

Документация для YAJSW гласит:

Требования к памяти Wrapper
Гибкость YAJSW имеет свою цену.Использование Java для процесса оболочки имеет много преимуществ.Однако мы платим java цену за более высокий объем памяти.В то время как оболочке JSW требуется всего несколько килобайт памяти, минимальная потребность в виртуальной памяти YAJSW составляет 90 МБ и 40 МБ физической памяти.Это значение варьируется в зависимости от операционной системы и функций.

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

...