Многие JVM никогда не возвращают память операционной системе. Делает это так или нет, зависит от реализации. Для тех, кто этого не делает, ограничения памяти, указанные при запуске, обычно через флаг -Xmx, являются основным средством резервирования памяти для других приложений.
Мне трудно найти документацию по этому вопросу, но документация для сборщика мусора для Sun 5 от Sun решает эту проблему, предполагая, что при правильных условиях куча будет уменьшаться, если правильный сборщик по умолчанию используется & mdash; если более 70% кучи свободны, она будет уменьшаться, и только 40% будет свободной. Параметры командной строки для управления ими -XX:MinHeapFreeRatio
и -XX:MaxHeapFreeRatio
.