как профилировать запуск приложения с помощью visualvm - PullRequest
52 голосов
/ 14 декабря 2010

Насколько я могу судить, вы можете профилировать только работающее приложение, используя VisualVM .

Кто-нибудь знает способ профилировать запуск и запуск Java-приложения с помощью VisualVM?

Я убежден, что должен быть способ, иначе это был бы серьезный недосмотр.

Надеюсь, я просто неправильно прочитал документацию.

Спасибо, стр.

Ответы [ 4 ]

17 голосов
/ 19 сентября 2011

Используйте модуль запуска eclipse и установите точку останова в соответствующем месте основного метода.

Затем запустите в режиме отладки, включите профилирование в visualVM, а затем возобновите использование eclipse.

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

9 голосов
/ 04 февраля 2015

Я нашел Запуск профилировщика полезно:

Плагин Startup Profiler для VisualVM 1.3.6 включает инструментарий профилирование локальных приложений Java 5+ с момента их запуска. Это также полезно при профилировании краткосрочных процессов.

9 голосов
/ 14 декабря 2010

Настраиваете ли вы профилирование с помощью параметра командной строки `-Xrunjdwp? Если это так, этот параметр имеет параметр" suspend " только для этой цели:

True, если целевая виртуальная машина должна быть приостановлена ​​непосредственно перед загрузкой основного класса, в противном случае - false.

Пример из моей собственной конфигурации:

-Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n

Я использую это сПрофилировщик YourKit, но я думаю, что принцип тот же.

0 голосов
/ 15 декабря 2010

Обе распространенные среды разработки Java (NetBeans / Eclipse) поддерживают выполнение приложений напрямую с подключенным VisualVM. В случае Eclipse вы должны установить плагин . В случае NetBeans поддержка AFAIK уже интегрирована.
Даже если у вас нет источников, вы все равно можете запускать JAR-файлы в обеих средах и, следовательно, запускать ваше приложение, подключенное к VisualVM.

...