我已经用 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。
添加到我的工具中会导致它
阻止直到我与
你的工具包?
命令行选项,将
创建一个分析“快照”,我
可以稍后加载和分析(之后
命令行工具已完成)
用你的Kit?
最佳答案
在分析器之前无法暂停分析的应用程序
“连接”;您根本不需要这样做。
相反,请执行以下操作:
需要分析 CPU 使用率,启动 CPU 采样或 CPU 跟踪
带有相应的启动选项“采样”或“跟踪”。
见 http://www.yourkit.com/docs/80/help/additional_agent_options.jsp
使用“onexit=snapshot”启动选项退出。后来开拍了
分析器 UI 中的快照以进行分析。
关于java - 如何使用 YourKit Java Profiler 连接到 Java 命令行工具?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2563777/