Какова нагрузка на память для анализа кучи с помощью jhat? - PullRequest
1 голос
/ 06 октября 2011

jhat - отличный инструмент для анализа дампов кучи Java, но для больших куч очень легко тратить много времени. Дайте Jhat кучу времени выполнения, слишком маленькую, и может произойти сбой 15 минут и не хватит памяти.

Что я хотел бы знать: есть ли эмпирическое правило о том, сколько -Xmx кучи я должен дать jhat в зависимости от размера файла heapdump? Только с учетом двоичных дампов кучи для Теперь.

Некоторые очень ограниченные эксперименты показывают, что его как минимум в 3-4 раза больше размера дампа кучи . Мне удалось проанализировать файл кучи с тремя и более гигабайтами с помощью -J-mx12G.

Есть ли у кого-нибудь еще более убедительные экспериментальные данные или понимание того, как jhat представляет объекты кучи во время выполнения?

Точки данных:

  • этот поток указывает на 5-кратную служебную нагрузку, но мои эксперименты на поздних моделях jhats (1.6.0_26) показывают, что это не так уж плохо
  • эта тема указывает на ~ 10x издержки
  • коллега подтверждает теорию 10x: файл кучи размером 2,5 ГБ завершается с -J-mx23G
  • еще один коллега получил дамп 6,7 ГБ для работы с кучей 30 ГБ для издержек 4,4х.
...