【问题标题】:Profiling java application with Intel VTune Amplifier XE 2013使用 Intel VTune Amplifier XE 2013 分析 java 应用程序
【发布时间】:2014-01-29 14:46:10
【问题描述】:

我想使用 Intel VTune Amplifier XE 2013(应用了最新的更新 15)来分析 java 多核算法。

为此,我使用 Oracle JDK 1.7.0_40(64 位)从 Eclipse 启动 java 应用程序,然后将 vtune 分析器附加到正在运行的 java 进程。操作系统是 Windows 8.1 x64。 vtune 可以收集统计信息,但显然 vtune 无法正确附加到 JVM,因此大多数记录的函数调用都被标记为“在任何已知模块之外”。在开始收集之前,VTune 收集器会报告以下警告:

Warning: Cannot profile the managed part of the target process.
There is no Java* Attach API available. Only native part of the target process will be profiled.
Suggestion: Make sure your application is running under JDK 1.6 or higher. 

有没有人经历过这个并找到了使用 VTune 启用完整的 java profiling 的方法?

【问题讨论】:

    标签: java profiling intel-vtune


    【解决方案1】:

    好吧,Eclipse 正在使用 JDK,但是您的 Java 应用程序使用 JDK 还是 JRE?请你看一下好吗?您的应用程序应使用 JDK 而不是 JRE,以便 Intel VTune Amplifier XE 2013 可以附加到 java 进程。谢谢。

    【讨论】:

    • 在我的情况下,在我的 Windows 机器上,Eclipse 使用以下命令运行应用程序: C:\tools\jdk_1.7.0u40\bin\javaw.exe JDK 没问题,但问题的原因可能是使用的是 javaw.exe 而不是 java.exe ?
    • 你是对的。最新的 VTune 更新不会将 javaw.exe 视为要附加的有效目标。您需要使用 java.exe。
    • 感谢 Denis,这确实是问题所在,一旦我将 Eclipse 配置为使用 java.exe 启动,探查器就会正确连接。
    【解决方案2】:

    我使用 vTune 分析的过程如下:

    1. 将应用程序导出为具有依赖关系的可运行 JAR
    2. 像这样创建一个 .bat 文件:java -Xcomp -jar myjar.jar
    3. 在 vTune 中选择您的 .bat 文件作为要启动的应用程序。

    这与安装在 Windows 7 上的多个 JDK/JRE 完美配合。

    注意:此解决方案不适用于服务器应用程序。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-05-12
      • 2012-11-19
      • 1970-01-01
      • 2020-10-04
      • 2019-11-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多