2012-02-24 1 views
3

Я использую JProfiler для профилирования моего приложения. Я заметил, что когда я запускаю сборщик мусора, все отмеченные Записанные объекты становятся зелеными, и через некоторое время он снова сталкивается с некоторой разницей в объекте, созданном и разрушенном.
Кстати, мое приложение все еще работает в настоящее время. Имеет ли мое приложение проблему с утечкой памяти, или это обычно.
Существует несколько оснастки выстрела, который может помочь вам понять ситуацию
enter image description hereJProfiler: После сбора мусора сборщик собирает объект. Если какой-либо живой объект находится в куче, это утечка памяти?

Выше оснастка выстрел, когда я бег Garbage Collector ...

Но через некоторое время эти баре становятся зелеными и красным Частично ...

+1

Вы должны посмотреть на разницу между тем, сколько памяти используется после полного GC. –

ответ

2

Как правило, вы можете сказать, что ваша память протекает, если размер, занимаемый определенным объектом, скажем char [], продолжает расти, несмотря на GC.

Это нормально, если после GC вы снова видите «Красный» для определенного типа объектов. Я предполагаю, что ваше приложение выполняет некоторую работу и генерирует мусор. Итак, это само по себе не проблема. Однако, если размер продолжает расти, то может быть проблемой.

Хорошая стратегия - отметить размер распределения данного объекта, скажем char [], до и после GC и посмотреть, сколько объектов собирается. Повторите упражнение в течение определенного периода времени. Если размер не растет массово, вы должны быть в порядке.

важный пункт здесь, однако, удостоверьтесь, что профиль нагрузки (количество запросов, фоновое задание и т. Д.) Одинаково. В противном случае результаты профилирования памяти не будут яблоками для яблок для сравнения.