Я хотел бы спросить, как я могу УДАЛЕННО профилировать Java-приложение. Для отладки я могу сказать, какой порт JVM должен прослушивать и т. д., поскольку машина, к которой я пытаюсь получить доступ, находится за шлюзом ssh, поэтому я вручную создаю туннель SSH, но я гуглил о том же, но при профилировании, и я не мог " кажется, не нашел. В основном я ищу эквивалент этой команды:
java -agentlib:jdwp=transport=dt_socket,server=y,address=8000 -jar /bla/bla
но для профилирования, чтобы я мог удаленно прикрепить профайлер.
Ответ 1 · рейтинг 8 · Ingo Kegel
Отказ от ответственности: моя компания разрабатывает JProfiler
В JProfiler параметр VM выглядит следующим образом:
-agentpath:/path/to/libjprofilerti.so=port=8849
"/path/to/libjprofilerti.so" - это путь к собственной библиотеке агентов, в Linux x86 для 32-разрядной JVM это будет [каталог установки JProfiler]/bin/linux-x86/libjprofilerti.so. С помощью параметра порта вы можете указать агенту прослушивать определенный порт. Вы можете установить это на порт вашего туннеля SSH.
Вы можете легко сгенерировать этот параметр виртуальной машины, вызвав Session->Integration Wizards->New Remote Integration в главном меню JProfiler:
На вашем локальном компьютере вы создаете новый сеанс типа "Присоединиться к профилированной JVM" и выбираете локальный порт вашего туннеля SSH (10022 на снимке экрана):