【问题标题】:How to use hotspot probes in dtrace on Mac OS X Leopard?如何在 Mac OS X Leopard 上的 dtrace 中使用热点探针?
【发布时间】:2009-07-22 14:29:32
【问题描述】:

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

$ java -version
java版本“1.6.0_13”
Java(TM) SE 运行时环境 (build 1.6.0_13-b03-211)
Java HotSpot(TM) 64 位服务器 VM(内部版本 11.3-b02-83,混合模式)

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

$ sudo dtrace -l | grep 点
$

谁能告诉我如何在 Leopard 中为 Java 启用 dtrace 探测(假设它们随 Java 6 一起提供)?

【问题讨论】:

    标签: java macos osx-leopard dtrace


    【解决方案1】:

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

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

    【讨论】:

    • 不,我没有运行 Java。确实它现在正在工作。谢谢!
    • 探针命名为hotspot_jni5867,意味着进程ID包含在探针名称中。探针是在进程启动时动态创建的。
    【解决方案2】:

    我正在使用 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
    

    ...

    【讨论】:

    • 嗯,很有趣。我正在运行相同的配置,但对我来说,探针没有出现。你用的是什么命令行?还有“sudo dtrace -l | grep spot”?
    • 'sudo dtrace -l | grep 热点'就可以了。
    【解决方案3】:

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

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

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

    【讨论】:

    • 好点。看起来确实只有 Sun 的 JDK 支持 dtrace。 OpenJDK 已计划支持但似乎尚未实施。 Apple 的实施可能也是如此。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-26
    • 1970-01-01
    • 2010-10-12
    • 2010-10-15
    相关资源
    最近更新 更多