Подтвердить что ты не робот

Как указать visualvm, где найти исходный код?

Я запускаю VisualVM для профилирования простого Java-приложения. Когда я дважды нажимаю на методе в панели профилирования (надеясь получить более подробную информацию об этом), тогда он говорит "Нет источника, найденного для класса...". Я знаю, где источник. Как я могу показать VisualVM, где искать?

4b9b3361

Ответ 1

Я взял дамп стека процесса VisualVM, пока он отображал этот диалог ошибок, и кажется, что проблема заключается в классе org.netbeans.modules.profiler.api. GoToSource, в методе openSourceImpl.

Этот метод пытается загрузить источник с помощью любых зарегистрированных реализаций интерфейса поставщика услуг GoToSourceProvider и отображает сообщение об ошибке, если никому из них не удается отобразить исходный код, о котором идет речь.

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

Из имени пакета появляется, что GoToSourceProvider - это SPI для модуля профилирования, но я не смог найти документацию о том, как реализовать этот SPI, и он, похоже, не является частью VisualVM точки расширения.

Ответ 2

Привет, что-то такое же, как VisualVM, реализовано в среде IDE NetBeans (я использую 8.0.2). Просто нажмите Profile->Project Profile. Показывается исходный код при нажатии. Но, к сожалению, нет более подробной информации о том, какие строки кода занимают больше времени.

Для этого я буду изменять код, и я буду считать вручную, используя

long beg = System.nanoTime() 
lineISuspect
sum += System.nanoTime() - beg;