JProfiler: требуется помощь для профилирования памяти - где мне найти номера строк, в которых размещаются объекты - PullRequest
1 голос
/ 06 мая 2020

newby alert:

Я начал свою 10-дневную пробную версию, и у меня возникают проблемы с тем, как получить ее, чтобы найти то, что я ищу. У меня есть довольно сложное однопоточное приложение Java, которое я пытаюсь никогда не использовать в G C. Я объединяю все свои объекты. Однако я, должно быть, пропустил несколько вещей. Я хотел бы узнать, где я освобождаю последнюю ссылку на объекты, которые возвращаются в кучу. Если я не могу этого найти, достаточно хотя бы знать, где создается память, которая позже будет G C 'd.

Вот что я делаю до сих пор: 1. нажмите на Живая память / записанные объекты 2. Щелкните запись и выберите «Объекты, собранные в мусоре, все распределения» 3. Щелкните «Запустить G C»

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

Я щелкаю правой кнопкой мыши по одному из элементов и выбираю «показать дерево распределения для выбора»

Все еще нет номеров строк ... хотя он дает мне имя метода. Если метод большой, довольно сложно определить, где создается память.

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

Ответы [ 2 ]

0 голосов
/ 09 июня 2020

Вы можете попробовать это:

  1. Щелкните «Живая память - Записанные объекты»

  2. Выберите объекты, которые хотите просмотреть, затем щелкните правой кнопкой мыши «Показать выделение в Heap Walker» и выберите «Показать в текущем дампе кучи»

  3. Выберите объекты, которые вы хотите просмотреть, в новом окне Heap Walker, щелкните правой кнопкой мыши и выберите «Использовать выбранные объекты» "и выберите" Распределения ". Затем вы можете увидеть дерево распределения объектов, прочитав код метода, вы можете найти нужный номер строки.

0 голосов
/ 06 мая 2020

В настройках профилирования вы можете включить разрешение номера строки.

enter image description here

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

Когда вы снова начинаете запись, все предыдущие данные удаляются.

...