使用英特尔VTune Amplifier XE 2013分析Java应用程序

时间:2014-01-10 15:01:34

标签: java profiling vtune

我想介绍使用英特尔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跟踪的方法吗?

2 个答案:

答案 0 :(得分:3)

嗯,Eclipse正在使用JDK,但是你的java应用程序使用JDK或JRE是什么?你能看一下吗?您的应用程序应该使用JDK但不能使用JRE,以便英特尔VTune Amplifier XE 2013可以附加到Java进程。感谢。

答案 1 :(得分:1)

我的流程如下:vTune:

  1. 将应用程序导出为具有依赖关系的可运行JAR
  2. 像这样创建一个.bat文件:java -Xcomp -jar myjar.jar
  3. 在vTune中,选择.bat文件作为要启动的应用程序。
  4. 这适用于Windows 7上安装的多个JDK / JRE。

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