如何在Mac OS X Leopard上的dtrace中使用热点探针?

时间:2009-07-22 14:29:33

标签: java macos osx-leopard dtrace

我的Leopard系统内置了dtrace。我还安装了Java 6,使用Apple提供的安装程序:

$ java -version
java version "1.6.0_13"
Java(TM) SE Runtime Environment (build 1.6.0_13-b03-211)
Java HotSpot(TM) 64-Bit Server VM (build 11.3-b02-83, mixed mode)

尽管如此,dtrace在列出探测时没有显示热点探测:

$ sudo dtrace -l | grep spot
$

有人可以告诉我如何在Leopard中为Java启用dtrace探针(据说它们附带Java 6)?

3 个答案:

答案 0 :(得分:5)

“嗯,有趣。我正在运行相同的配置,但对我来说,探针没有出现。你使用了什么命令行?还有”sudo dtrace -l | grep spot“?”

  • 只需一次交叉检查。当你发出“sudo dtrace -l | grep spot”时,你应该有一个正在运行的java应用程序。只有这样才能列出探针。

答案 1 :(得分:1)

我正在使用Java 1.6运行Snow Leopard,我可以看到热点探测器:

...

43223 hotspot_jni3644   libclient.dylib                   jni_AllocObject AllocObject-entry
43224 hotspot_jni3644   libclient.dylib                   jni_AllocObject AllocObject-return
43225 hotspot_jni3644   libclient.dylib           jni_AttachCurrentThread AttachCurrentThread-entry
43226 hotspot_jni3644   libclient.dylib           jni_AttachCurrentThread AttachCurrentThread-return
43227 hotspot_jni3644   libclient.dylib   jni_AttachCurrentThreadAsDaemon AttachCurrentThreadAsDaemon-entry
43228 hotspot_jni3644   libclient.dylib   jni_AttachCurrentThreadAsDaemon AttachCurrentThreadAsDaemon-return
43229 hotspot_jni3644   libclient.dylib             jni_CallBooleanMethod CallBooleanMethod-entry
43230 hotspot_jni3644   libclient.dylib             jni_CallBooleanMethod CallBooleanMethod-return

...

答案 2 :(得分:0)

您确定这也适用于Apple JVM吗?虽然关于JDK 6的文档中提到了DTrace钩子,但您也可以在Non-standard Java HotSpot VM Options上找到(强调添加):

-XX:-ExtendedDTraceProbes启用影响性能的dtrace探针 (引入6. 仅与Solaris相关。

如果这是特定于平台的,则不是一个好兆头。 AFAIK Apple构建自己的定制JVM。