Я сейчас пытаюсь профилировать веб-приложение Java. Я использовал Netbeans Profiler в сочетании с Eclipse. Мой сервер (Tomcat) работает через плагин eclipse, и я динамически подключаюсь к серверу с помощью профилировщика Netbeans.
У меня есть основная проблема: через некоторое время серверу не хватает памяти в среде. Я прочитал об утечке памяти и понял, что есть два пути:
1. Большие объекты остаются в памяти, остаются незагруженными и вызывают утечку памяти ИЛИ
2. мелкие объекты продолжают присваиваться в памяти без сбора.
Хотя второе обычно трудно найти, один из обычных симптомов состоит в том, что в течение определенного периода времени вывоз мусора, вывозимого из жернов, будет увеличиваться, независимо от скорости. И, похоже, это происходит в моем веб-приложении, хотя в действительности никаких действий не происходит. Поколения увеличиваются с течением времени, неуклонно и без исключений. Заставить меня подумать, что у меня где-то есть объекты, на которые я должен был собрать мусор.
Я выполнил тесты с профилировщиком, но, к сожалению, я не совсем понял, как правильно указать объект. Я заметил, что в одном конкретном HASHMAP число сохраняющихся поколений постоянно увеличивается, хотя я собирал мусор несколько раз.
Я прилагаю простой снимок экрана, дающий очень краткий обзор того, что я увидел за следующие несколько минут после запуска приложения.
Я был бы признателен, если бы вы указали мне на некоторые реальные статьи и т. Д., Которые бы просветили меня, как понять смысл профилирования и что я должен делать, чтобы убедиться, что я поймаю виновника.
Любая помощь очень ценится.
Найдите прикрепленный скриншот.
альтернативный текст http://dl.getdropbox.com/u/1264228/Files/State.png