Мне нужно профилировать 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
Я использую библиотеку Sun Java 1.5.0_10 JVM
В Eclipse у меня есть проект Java, содержащий код, который я хочу профилировать. У меня нет конфигураций запуска профилирования, и я действительно не знаю, что в них нужно вводить.
На этом мои знания заканчиваются; когда я запускаю свое приложение на основе JNI, оно просто останавливается во время запуска виртуальной машины и ожидает, предположительно, подключения контроллера агента. Какие шаги мне нужно предпринять, чтобы это произошло, и получить от этого информацию?




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