锁定透视图以图和表的形式提供信息,帮助您了解由锁定导致的任何争用。
显示两种锁定的信息:
缺省情况下会显示 Java 监视器,这些监视器在解决应用程序争用问题方面最为有用。 要显示系统监视器,请使用表或图工具栏中的显示... 图标。
已从整个垃圾回收周期内所有监视器的持有时间中减去垃圾回收时间。
该条形图提供了如何争用应用程序锁定的概述。
条的高度表示慢锁计数,相对于图中的所有列。当请求的监视器已由其他线程占用,而且请求线程被阻止后,会出现慢锁计数。
每个条的颜色基于表中错失列百分比的值。梯度从红色 (100%) 到黄色 (50%),最终到绿色 (0%)。红条表示每次请求监视器时线程都进行阻止。绿条表示线程从不阻止。
只会显示争用程度最高的监视器。
监视器表显示所列的每个监视器的数据:
列标题 | 描述 |
---|---|
错失百分比 | 总获取数的百分比,在这种情况下,尝试进入针对同步代码的锁定的线程必须等待直至拥有该锁定。 |
获取: | 扩展锁定时持有该锁定的总次数。 |
慢锁: | 非递归锁定获取的总数,在这种情况下,由于该锁定已由另一个线程拥有,因此请求线程必须等待该锁定。 |
递归: | 递归获取的总数。在请求线程已拥有监视器的情况下,会发生递归获取。 |
利用率百分比: | 持有该锁定的时间量除以接管输出的时间量。 |
平均持有时间: | 线程持有或拥有锁定的平均时间量。例如,花在同步块上的时间量(以处理器时钟信号度量)。 |
名称: | 监视器名称。如果名称未知,那么该列为空。 |
该表列出已扩展的所有监视器。错失百分比列是首要项。错失百分比较高表明受锁定保护的同步资源上频繁发生争用。 这种争用可能会阻止 Java 应用程序进一步提高性能。
如果某个锁定的错失百分比值较高,请查看平均持有时间和利用率百分比。如果利用率百分比和平均持有时间都较高,您可能需要在持有该锁定期间减少完成的工作量。如果利用率百分比较高,但平均持有时间较低,您可能需要使用更细颗粒度的锁定来保护资源,以将该锁定划分为多个锁定。
监视器名称包括对象地址(显示在方括号中)以及锁定类型。例如,对具有类 Object 的对象进行同步时,监视器名称包括地址和 java/lang/Object。
AIX® 体系结构的锁定工作方式不同于其他平台。在 AIX 上,较多的锁定可能表现为较差的性能,尤其是系统监视器锁定。这是 AIX 上的预期行为。