Есть ли способ уменьшить кучу Java когда не используется?

Я сейчас работаю над Java-приложением и работаю над оптимизацией его использования памяти. Насколько мне известно, я следую рекомендациям по правильной сборке мусора. Тем не менее, похоже, что моя куча имеет максимальный размер, хотя в ней нет необходимости.

Моя программа выполняет ресурсоемкую задачу один раз в час, когда компьютер не используется человеком. Эта задача использует приличный кусок памяти, но затем освобождает ее сразу после завершения задачи. Профилировщик NetBeans показывает, что использование памяти выглядит следующим образом:

Java program memory usage

Я действительно хотел бы вернуть все это пространство кучи обратно в ОС, когда оно не используется. У меня нет причин возиться со всем этим, пока программа не будет ничего делать еще хотя бы час.

Возможно ли это? Спасибо.

51
задан jocull 9 February 2011 в 15:40
поделиться