Возможно, это наивный вопрос. Я в процессе расследования вероятной утечки памяти в моем приложении. Я отслеживаю процесс tomcat через jvisualvm. В какой-то момент я решил сделать кучу кучи.Почему запуск кучи кучи приводит к значительному сокращению количества потоков?
Я был удивлен, увидев, что мой поток подсчитан, а потребление памяти значительно снизилось после создания кучи кучи. Обратите внимание на следующие снимки экрана.
Почему мой счет нити и снижение памяти только из-за кучи свалка?
[РЕДАКТИРОВАТЬ] В ответ на ответы о том, что он делает полную сборку мусора в ответ на кучу кучи, мой вопрос о последующем будет, не следует ли собирать мусор все время? Я не вижу предварительных драматических спадов, просто регулярных, которые происходят, когда GC происходит нормально. Чем отличается этот цикл GC, чем обычно?
В общем случае полный GC будет запущен перед выполнением сброса кучи, что может привести к снижению количества потоков. – kosa
Мне нравится, когда лучший результат связанного поиска Google - это вопрос SO, который дублируется. –