jprofile: как определить, почему эта память в приложении продолжает увеличиваться в идеальном режиме (приложения)

Я запустил JProfiler на одном из наших приложений:

это JProfiler > Телеметрия> Снимок памяти:

Наконец, вы можете видеть четыре медленно увеличивающихся объема памяти, когда приложение находится в режиме IDEAL. Я не смог понять, почему это происходит. Может ли кто-нибудь помочь мне найти более подробную информацию.

Мы используем SpringMVC, Hibernate, DWR, Quartz (для планирования) и другие как общие (обычная регистрация).

Редактировать:

Это увеличение памяти в идеальном режиме приложения имеет в основном char[] и int[]. Я получил это от Jprofiler> Live Memory> All Objects. Вы можете увидеть здесь:

И я не могу записать эти объекты. Я пытался получить более подробную информацию, но не смог этого сделать, и когда я пытаюсь использовать char[] Щелкните правой кнопкой мыши> Показать выделение в Heap Walker: тогда он показывает только несколько КБ. Вы можете увидеть здесь:

Заранее спасибо за вашу помощь.

1 ответ

Это временное потребление памяти, которое сложно проанализировать. Может быть много недолговечных объектов, которые не отображаются в снимке кучи.

Один из способов отслеживать созданные объекты - использовать представление "Память-> Записанные объекты" и вызывать

Вид-> Изменить режим жизни-> Мусор Собранные объекты

из меню (или панели инструментов). После освобождения памяти вы анализируете совокупную статистику по недолговечным объектам, которые были собраны сборщиком мусора.

Чтобы увидеть, где были расположены эти объекты, вы можете щелкнуть правой кнопкой мыши по строкам и выбрать "Показать дерево размещения" или "Показать горячие точки распределения" из контекстного меню.

Другие вопросы по тегам