Как я могу найти локальные переменные в файле кучи

У меня есть приложение j2ee, и я отслеживаю его с помощью VisualVM.

Допустим, у меня есть такой метод:

public void doStuff(int param) {
    String s = getStringVariable(param);
    StringBuilder sb = new StringBuilder();
    //Do stuff with sb object
}

По отводу потока я вижу, что некоторые из моих потоков застряли в описанном выше методе. Поэтому я создал файл дампа кучи, чтобы выяснить, что содержит s и sb.

Но как я могу это сделать? Я использую анализатор памяти Eclipse.


person Sam    schedule 18.03.2014    source источник


Ответы (1)


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

Итак, сначала вам нужно перечислить ваши текущие темы, и вы можете сделать это:

  1. Нажмите кнопку параметров объектов на панели действий[].
  2. Выберите Основы Java -> Обзор потоков и стеки.

Затем, чтобы перечислить объект для определенного потока:

  • Щелкните правой кнопкой мыши -> Объект списка -> Исходящие ссылки

Затем найдите свою локальную переменную в теге <Java Local>

person Salah    schedule 18.03.2014
comment
Спасибо, теперь я вижу все свои локальные переменные. - person Sam; 19.03.2014