编程语言
首页 > 编程语言> > 如何使用YourKit Java Profiler连接到Java命令行工具?

如何使用YourKit Java Profiler连接到Java命令行工具?

作者:互联网

我在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.
>我可以使用YourKit API吗?
添加到我的工具,将导致它
阻止,直到我连接
YourKit?
>是否有YourKit API或java
命令行选项
创建一个我的分析“快照”
可以加载和分析以后(之后
命令行工具已完成)
使用YourKit?

解决方法:

在探查器之前无法暂停已分析的应用程序
“所连接”;你根本不需要这样做.

相反,请执行以下操作:

>从启动时打开所需的分析模式.例如,如果你
需要分析CPU使用情况,启动CPU采样或CPU跟踪
具有相应的启动选项“采样”或“跟踪”.
http://www.yourkit.com/docs/80/help/additional_agent_options.jsp
>如果配置文件应用程序短时运行,请启用快照捕获
退出并使用“onexit = snapshot”启动选项.后来开放捕获
用于分析的探查器UI中的快照.

标签:java,connection,profiling,yourkit
来源: https://codeday.me/bug/20190724/1518828.html