2015-12-15 6 views
-3

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

+0

Сделайте то, что более эффективно? VisualVM является ручным профилировщиком, вы выбираете, какая программа (ы) для профиля, а затем профиль процессора или кучи (или просто отслеживайте программу с графиков). – Kayaman

ответ

0

Вы всегда можете настроить JMX для вашего приложения с помощью настройки свойств системы при запуске:

java -Dcom.sun.management.jmxremote.port=1234\ 
    -Dcom.sun.management.jmxremote.ssl=false \ 
    -Dcom.sun.management.jmxremote.authenticate=false \ 
    YourJavaApplication 

Тогда вы сможете сохранить профиль в jvisualvm для подключения к данному конкретному JMX порту.

+0

Я пробовал это, но я получаю исключение bind bind в том же порту. – user2761431

+0

Один порт для каждого приложения ... вы на windows или linux? Выбор свободных защищенных портов <1024) гарантирует, что они не назначаются динамически – Jan