Как я могу профилировать приложение JNI, используя Eclipse TPTP? - PullRequest
1 голос
/ 17 января 2009

Мне нужно профилировать Java-приложение, запущенное API-интерфейсом вызова JNI, из приложения C, и, естественно, инструменты TPTP показались мне хорошим местом для запуска. Тем не менее, я могу запустить приложение, но я не знаю, как подключиться к нему для профилирования. Я понимаю, что это попадает в ведро «тупого новичка», но я действительно потерялся. Позвольте мне объяснить:

Я добавил опцию JVM "-XrunpiAgent:server=controlled" в опции запуска моей виртуальной машины Java.

Я добавил $ECLIPSE_HOME/plugins/org.eclipse.tptp.platform.ac.linux_ia32_4.4.1.v200808290100/agent_controller/lib to my LD_LIBRARY_PATH

Я работаю с библиотекой JVM Sun Java 1.5.0_10

В Eclipse у меня есть проект Java, который содержит код, который я хочу профилировать. У меня нет профилирующих конфигураций запуска, и я не знаю, что в них нужно.

Именно в этот момент мои знания заканчиваются; когда я запускаю свое приложение на основе JNI, оно просто останавливается во время запуска виртуальной машины и находится в ожидании, предположительно, соединения с контроллером агента. Какие шаги мне нужно предпринять, чтобы это произошло и чтобы получить от него информацию?

Ответы [ 2 ]

1 голос
/ 23 января 2009

Вы можете использовать C-профилировщик для профилирования вашего C-кода. Он должен быть скомпилирован в библиотеку, которую вы хотите профилировать, но может быть полезно посмотреть, что делает код.

1 голос
/ 23 января 2009

Я пытался использовать TPTP раньше, и я никогда не мог установить его правильно. Я мог бы порекомендовать вам попробовать профилировщик, включенный в NetBeans, для подключения к вашему приложению. Я использовал его для профилирования приложения с вызовами JNI, и оно мне хорошо помогло. Конечно, весь нативный код непрозрачен для профилировщика, и он говорит только о том, сколько времени потребовались сами нативные вызовы.

У меня есть запись в блоге, которая объясняет, как профилировать приложения Eclipse, используя netbeans, если это помогает.

...