Задержка, вызванная сборкой мусора Java, влияет на производительностьJAVA

Программисты JAVA общаются здесь
Anonymous
Задержка, вызванная сборкой мусора Java, влияет на производительность

Сообщение Anonymous »

Я заметил странное явление в своем приложении. Я сохраняю объекты в Hashmap после отправки их на сервер и удаляю их при получении ответа.

Недавно я заметил очень низкую производительность после бега. Проверив, я обнаружил, что использование памяти остается на уровне 4 ГБ, а затем падает до менее 1 ГБ. Я подозреваю, что он очищает множество объектов, поэтому производительность становится такой плохой.

Итак, вопрос в том, почему сборка мусора в Java выполняется так поздно? То есть зачем ждать, пока куча заполнится, а затем выполнять сборку мусора? Разве он не должен собирать мусор через регулярные промежутки времени?

Объекты, которые хранятся в HashMap, создаются прямо в этот самый момент, то есть они недолговечны.

Это в Linux (RHEL), Oracle JVM HotSpot 7. 64-бит. 4 ядра. Вот как приложение запускается:

Код: Выделить всё

java -jar -Xmx4g prog.jar
Примечание: я видел это: настройка сборки мусора для низкой задержки. Но сейчас я хочу понять, почему сборщик мусора так долго срабатывает?

Подробнее здесь: https://stackoverflow.com/questions/165 ... erformance

Вернуться в «JAVA»