JProfiler: Поиск ссылки на утечку памяти - PullRequest
0 голосов
/ 23 октября 2011

Я пытаюсь использовать JProfiler для одного из моих приложений, работающих на сервере tomcat.

Итак, я написал сервлет утечки памяти, как показано ниже.

@SuppressWarnings(value = { "" })
public class Dust extends HttpServlet {
protected void doGet(HttpServletRequest request,
        HttpServletResponse response) throws ServletException, IOException {
    String str = new String();
    List myarrylist = new ArrayList();
    int i = 10;
        while (true) {
    myarrylist.add(str);
    System.out.println(i);
        i++;
    }
}
}

Теперь, когда я запустил JProfiler в этом приложении, используя веб-приложение профиля, работающее локально. Это дало мне эту точку зрения. пожалуйста, смотрите скриншот здесь

http://tinypic.com/view.php?pic=2r5c2nq&s=7

У меня есть следующие вопросы:

  1. Показывает, что число Строковых Объектов создается. (Но как мы можем узнать, в каком классе / сервлете и какая именно строка действительно отвечает за создание объектов, поскольку в приложении может быть много строк.) ??

  2. А почему кнопка «Пуск» (которую я выделил) отключена ??

  3. Достаточно ли запустить JProfiler, нажав кнопку «Пуск» (см. Изображение), и нам также не нужно запускать сервер Tomcat ??

Пожалуйста, помогите. Спасибо .

1 Ответ

2 голосов
/ 23 октября 2011

Для этого вы должны использовать кучи.Представления динамической памяти не могут отображать какую-либо информацию о ссылках, поскольку необходимо создать моментальный снимок.

См. этот экран для получения дополнительной информации о том, как найти утечку памяти с помощью JProfiler.

...