我一直在用 javaagent 分析我的 java 应用程序。但我发现 JDK 7 加强了对堆栈映射帧执行的检查,当字节码被不知道这些更改的工具修改时,这可能导致 VerifyError 异常。我们可以使用 -XX:-UseSplitVerifier" 开关将验证器更改回 JDK 6 版本。但我发现没有 javaagent 的 java 应用程序的执行时间比 javaagent 运行的同一个 java 应用程序的执行时间要短。有没有其他方法可以profile? JVMTI 提供了更好的选择,但我不太擅长使用本机(c,c++)语言。
问问题
629 次
2 回答
3
您可以尝试包含在 oracle jdk 中的 jvisualvm
(如果您使用的是JDK 6 版本,请更新7 或更高版本)
但我发现没有 javaagent 的 java 应用程序的执行时间比 javaagent 运行的同一个 java 应用程序的执行时间要短
任何分析器都会有一些开销(如果它正在做某事,它必须使用 cpu 和一些内存本身)
于 2013-03-14T08:52:07.613 回答
2
JProfiler适用于 Java 7。
于 2013-03-14T08:37:37.847 回答