Разница в использовании памяти Java между Linux и Windows - PullRequest
5 голосов
/ 29 января 2010

При запуске одного и того же процесса Java (jar) в Windows и Linux (Debian) процесс Linux использует гораздо больше (12 МБ против 36 МБ), только при запуске. Даже при попытке ограничить размер кучи с помощью -Xmx / Xms / etc, он остается прежним. Ничто из того, что я пробую, кажется, не помогает, и процесс всегда занимает 36 МБ. Чем объясняется эта разница между Linux и Windows и как я могу уменьшить использование памяти?

EDIT: Я измеряю память с помощью диспетчера задач Windows и верхней команды Linux. JVM одинаковы и являются 32-битными системами.

Ответы [ 3 ]

2 голосов
/ 29 января 2010

Я рекомендую использовать профилировщик, например VisualVM , чтобы получить более детальное представление о происходящем.

0 голосов
/ 29 января 2010

Вероятно, это также измерение общей памяти

0 голосов
/ 29 января 2010

Один вопрос, который я хотел бы задать, чтобы лучше понять проблему:

На двух платформах профиль памяти моего Java-приложения сильно отличается? Вы можете ответить на это, запустив -loggc и просмотрев вывод в визуализаторе gc, например HPjmeter . Вы должны попытаться взглянуть на набор образцов со статистически значимым объемом данных, возможно, 1000 или 10000 gc графиков. Если ответ «нет», я хотел бы объяснить разницу, которую вы видите, с требованиями к выделению кучи JVM для запуска. Как указывалось в «nos», выявление различий может быть очень сложным. Когда вы указали значение -Xmx в Linux, использование памяти превысило ваше значение Xmx?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...