我已经用 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 API 或 java
    命令行选项,将
    创建一个分析“快照”,我
    可以稍后加载和分析(之后
    命令行工具已完成)
    用你的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/

    10-11 17:09