JVMTI API中没有同步统计信息?

时间:2011-04-17 00:15:13

标签: java jvmti

java.lang.ThreadInfo提供了一些非常有用的方法,这些方法提供了有关Java同步的统计信息。例如:

getBlockedTime() 返回自启用线程争用监视以来,与此ThreadInfo关联的线程已阻止进入或重新进入监视器的大致累计已用时间(以毫秒为单位)。 [...]

getWaitedCount() 返回与此ThreadInfo关联的线程等待通知的总次数。 [...]

我找不到从JVMTI API访问这些信息的功能。我是否忽视它或者我是否必须自己收集这些信息?


除了同步统计之外,你似乎甚至无法获得一个Threads id,可以通过Thread.currentThread().getId();获得

1 个答案:

答案 0 :(得分:1)

这不是那么简单,但我认为你可以通过JVMTI事件到达阻塞时间和等待计数(参见“监视器”事件:“监视器争用输入”和“监视器等待”等)。 / p>

重新获取线程ID,不会看起来像JVMTI分配这些。另一方面,我不确定ThreadInfo中给出的ID实际上是指O / S分配的任何“真实”ID。