Jprofiler 和 G1 GC
Jprofiler and G1 GC
我试图使用 jprofiler 分析我的 spark 应用程序(使用 G1 GC)。我在他们的网站上看到了他们提到 jprofiler 远程分析只能与标准垃圾收集器一起可靠地工作:
http://resources.ej-technologies.com/jprofiler/help/doc/index.html
(在探测 Settings/Starting 远程会话部分下)
“请注意,分析接口 JVMTI 只能与标准垃圾收集器一起可靠地运行。如果您的命令行上有 VM 参数来更改垃圾收集器类型,例如
-Xincgc
-XX:+UseParallelGC
-XX:+UseConcMarkSweepGC
-XX:+UseParNewGC
请务必删除它们。如果您在分析时遇到问题,删除所有 -XX 选项可能是个好主意。"
最新版本的 jprofiler (9.0) 也是如此吗?这也会影响 cpu 分析吗?
我可以使用 visualVM 进行内存分析,只是想知道为什么使用 jprofiler 存在这种限制(如果有的话)。
这不是限制,只是建议。一些替代的 GC 没有使用 JVMTI(JVM 的分析接口)进行很好的测试。 G1 GC将成为标准GC,所以情况有所不同。
我试图使用 jprofiler 分析我的 spark 应用程序(使用 G1 GC)。我在他们的网站上看到了他们提到 jprofiler 远程分析只能与标准垃圾收集器一起可靠地工作:
http://resources.ej-technologies.com/jprofiler/help/doc/index.html (在探测 Settings/Starting 远程会话部分下)
“请注意,分析接口 JVMTI 只能与标准垃圾收集器一起可靠地运行。如果您的命令行上有 VM 参数来更改垃圾收集器类型,例如
-Xincgc
-XX:+UseParallelGC
-XX:+UseConcMarkSweepGC
-XX:+UseParNewGC
请务必删除它们。如果您在分析时遇到问题,删除所有 -XX 选项可能是个好主意。"
最新版本的 jprofiler (9.0) 也是如此吗?这也会影响 cpu 分析吗?
我可以使用 visualVM 进行内存分析,只是想知道为什么使用 jprofiler 存在这种限制(如果有的话)。
这不是限制,只是建议。一些替代的 GC 没有使用 JVMTI(JVM 的分析接口)进行很好的测试。 G1 GC将成为标准GC,所以情况有所不同。