9

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

$ java -版本
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 一起提供)?

4

3 回答 3

5

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

  • 只是一个交叉检查。当您发出“sudo dtrace -l | grep spot”时,您应该有一个正在运行的 Java 应用程序。只有这样探针才会被列出。
于 2009-10-26T16:06:22.583 回答
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

...

于 2009-09-04T21:30:51.167 回答
0

您确定这也适用于 Apple JVM 吗?虽然在有关 JDK 6 的文档中提到了 DTrace 挂钩,但您也可以在非标准 Java HotSpot VM 选项中找到(强调添加):

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

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

于 2009-07-23T20:38:39.047 回答