2012-03-12 3 views
2

У меня есть огромный файл дампа кучи Java. Он также содержит (я считаю) недостижимые объекты, которые будут мусором, собранным JVM (или, как вы надеетесь).Могу ли я запустить сборку мусора Java против файла дампа кучи?

Есть ли инструмент, который позволяет запускать сборщик мусора против этого файла, так что я могу

  1. избавиться от ненужных данных
  2. верифицировать/симулировать сбор мусора с различными алгоритмами, чтобы увидеть, как хорошо они работают
  3. идентифицировать проблемы сбора мусора

ответ

4

нет представления о 2 + 3 (и я не думаю, что это было бы возможно), но по крайней мере, требование 1 по умолчанию в го Анализатор электронной Затмения памяти

«По умолчанию недостижимые объекты удаляются из дампа кучи при разборе и не будет отображаться в классе гистограммы, Деспот дерево, и т.д.»

http://wiki.eclipse.org/MemoryAnalyzer/FAQ

+0

может удалить недостижимые объекты, но на основе по моему опыту, он не удаляет объекты, которые достижимы только с помощью мягкой/слабой ссылки (которые, по определению, имеют право на gc). К сожалению, это иногда делает анализ кучи с MAT трудным, так как много объектов, которые должны быть gc'able, все еще отображаются в дампе кучи. Я хотел бы иметь инструмент, который может gc файл дампа кучи, принимая во внимание мягкие/слабые ссылки. – JimN

Смежные вопросы