Я контролирую приложение Java, работающее на Jvm 6
. Здесь скриншот панели jvisualVM 1.Как Jvm6 уменьшает размер кучи, когда это не необходимо
Я заметил, что когда размер кучи мал (до 12:39 на картинке), сборщик мусора работает часто. Затем я запускаю дорогостоящую задачу памяти пару раз (с 12:39 до 12:41), и пространство кучи растет. Почему с этого момента сборщик мусора работает реже?
После часа или более, если я не выполню дорогостоящие задачи приложения, кучное пространство медленно уменьшится. Почему используемое пространство кучи занимает настолько много времени, чтобы уменьшаться?
Есть ли что-то, что я могу сделать, чтобы избежать такого поведения? Имеет ли новое Java8 VM другое поведение?
Я начал этот анализ после нескольких необычных сбоев. Я думаю, что моя проблема в основном - «дорогостоящая задача памяти». Но я блуждал, почему размер кучи занял столько времени, чтобы ослабить и как предотвратить это поведение. – Panciz