java - 测量线程锁定监视器的时间

标签 java performance locking profiling

我在一个信号量上有锁争用,我想测量锁被保留了多长时间。

有没有一些免费的工具可以测量这样的东西?

尝试了 Visual VM,我看到了锁争用,但我对时间更感兴趣。

感谢您的任何建议。

我有 50 个

"[ACTIVE] ExecuteThread: '226' for queue: 'weblogic.kernel.Default (self-tuning)'" daemon prio=3 tid=0x00000001099fa000 nid=0x41e waiting for monitor entry [0xfffffffe5a8f9000]
   java.lang.Thread.State: BLOCKED (on object monitor)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:292)
    - waiting to lock <0xfffffffeb063ebb0> (a weblogic.utils.classloaders.GenericClassLoader)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
    at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:176)
    at com.thoughtworks.xstream.core.util.CompositeClassLoader.loadClass(CompositeClassLoader.java:69)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:247)
    at com.thoughtworks.xstream.XStream.dynamicallyRegisterConverter(XStream.java:723)
    at com.thoughtworks.xstream.XStream.setupConverters(XStream.java:696)
    at com.thoughtworks.xstream.XStream.<init>(XStream.java:445)
    at com.thoughtworks.xstream.XStream.<init>(XStream.java:385)
    at com.thoughtworks.xstream.XStream.<init>(XStream.java:342)

最佳答案

你可以使用 Sun Studio Performance Analyzer并启用锁定分析。这将显示您在锁中花费的时间。

jProfiler 也有线程/监视器统计选项卡,所以你可以试一试。

另一种方法是通过在给定的时间间隔内对线程转储进行采样并手动计算来获得估计值。

另一种方法是打印安全点统计 (+XX:PrintSafePointStatistics),这也打印出“线程阻塞的时间量(以毫秒为单位) ”,详情见JVM SafePointStatistics - Can anyone help interpret it .

关于java - 测量线程锁定监视器的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16919588/

相关文章:

java - 使用 NetworkCallback 代替 NetworkInfo

java - 回收站 View : No adapter attached; skipping layout in Activity

mysql - 如何读取mysql中插入触发器后创建的innodb行?

sql - SSIS 包中 ReadUncommissed 隔离级别的解决方法

java - 使用合格证书签署 PDF 文档 - 智能卡

java - 使用 JSoup 将此 url : http://www. aw20.co.uk/images/logo.png 的内容保存到文件中

sql - 使用 WHERE 子句的交叉连接与内连接的性能比较

performance - 在 x86 程序集 : xor, mov 或 and 中将寄存器设置为零的最佳方法是什么?

java - 如何在 Java 中的 8GB 平面文件中的无序列表中查找名称

java - Apple Java 更新 1.6.0_51 后 Swing 应用程序卡住了