Я вызываю свое приложение Java с различными аргументами из сценария оболочки. Каждый раз он привязывается к другому порту. Я пытаюсь использовать VisualVM для профилирования моего приложения, но поскольку он использует разные порты для каждого вызова, мне приходится вручную подключаться к приложению каждый раз из графического интерфейса VisualVM. Есть ли способ сделать это более эффективным?Java Profiling - VisualVM
ответ
Вы всегда можете настроить JMX для вашего приложения с помощью настройки свойств системы при запуске:
java -Dcom.sun.management.jmxremote.port=1234\
-Dcom.sun.management.jmxremote.ssl=false \
-Dcom.sun.management.jmxremote.authenticate=false \
YourJavaApplication
Тогда вы сможете сохранить профиль в jvisualvm для подключения к данному конкретному JMX порту.
Я пробовал это, но я получаю исключение bind bind в том же порту. – user2761431
Один порт для каждого приложения ... вы на windows или linux? Выбор свободных защищенных портов <1024) гарантирует, что они не назначаются динамически – Jan
Сделайте то, что более эффективно? VisualVM является ручным профилировщиком, вы выбираете, какая программа (ы) для профиля, а затем профиль процессора или кучи (или просто отслеживайте программу с графиков). – Kayaman