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