Загрузка большого hprof в jhat

Я бы просто использовал одну переменную для управления приращением цикла for:

    for (i=0; menu_statetop[i].state; i++)

В ответ на Weather Vane вы можете обработать смещение индекса массива в теле цикла for. Это намного яснее и надежнее.

Я также был бы осторожен с переменной, которую вы используете в качестве условия для цикла for. в вашем коде вы используете переменную menu_statetop [i] .state, которая выглядит как целое число / enum. Если бы не было "перерыва"; в цикле цикл for будет выполняться до тех пор, пока значение, содержащееся в menu_statetop [i] .state, не равно 0.

25
задан Ahmed Ashour 19 September 2016 в 11:55
поделиться

3 ответа

Я бы посмотрел на анализатор памяти затмения . Этот инструмент великолепен, и я посмотрел несколько куч Gig с этим инструментом. Хорошая вещь об инструменте - это то, что он создает индексы в дампе, поэтому он не все в памяти сразу.

21
ответ дан broschb 28 November 2019 в 21:03
поделиться

Какие флаги вы передаете Jhat? Убедитесь, что вы находитесь в 64-битном режиме, и вы устанавливаете размер кучи достаточно большим.

-1
ответ дан Kevin 28 November 2019 в 21:03
поделиться

Мне пришлось загрузить файл hprof объемом 11 ГБ, и я не смог с анализатором памяти Eclipse. В итоге я написал программу, уменьшающую размер файла hprof путем случайного удаления информации об экземпляре. Как только размер файла hprof уменьшился до 1 ГБ, я мог открыть его с помощью анализатора памяти Eclipse и получить представление о том, что вызывало утечку памяти.

4
ответ дан vimil 28 November 2019 в 21:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: