Javaでコマンドラインツールを作成しました。これをYourKitでプロファイリングしたいと思います。次のようなコマンドラインツールを起動します。
$ java -classpath .:foo.bar.jar com.foobar.tools.TheTool arg1 arg2 arg3
2秒以内に完了します。
http://www.yourkit.com/docs/80/help/agent.jspを読んだ後、次のことを試しました。
$ java -agentpath:/home/dspitzer/yjp-8.0.24/bin/linux-x86-32/libyjpagent.so -classpath .:foo.bar.jar com.foobar.tools.TheTool arg1 arg2 arg3
...そして私は得る:
[YourKit Java Profiler 8.0.24] JVMTI version 3001016d; 14.3-b01; Sun Microsystems Inc.; mixed mode, sharing; Linux; 32-bit JVM
[YourKit Java Profiler 8.0.24] Profiler agent is listening on port 10001...
[YourKit Java Profiler 8.0.24] *** HINT ***: To get profiling results, connect to the application from the profiler UI
...
(その後、ツールは最後まで実行されて終了します。)
(少なくともデフォルトでは)YourKitは実行中のアプリケーションにのみ接続するように設計されていると思います。
YourKitからの接続を許可するようにコマンドラインツールを変更するにはどうすればよいですか?
- 入力を一時停止するコマンドラインオプションを追加できます。YourKitから接続するまで、Returnキーを押して続行することはありません。
- YourKitに接続するまでツールをブロックするYourKitAPIをツールに追加できますか?
- YourKitを使用して後で(コマンドラインツールの完了後に)ロードして分析できるプロファイリング「スナップショット」を作成するYourKit APIまたはJavaコマンドラインオプションはありますか?