Board logo

标题: 用于 PowerPC 上的 Linux 的五个易用的性能分析工具(5) [打印本页]

作者: look_w    时间: 2017-11-18 21:23     标题: 用于 PowerPC 上的 Linux 的五个易用的性能分析工具(5)

JLMJLM 工具提供 Java 程序中对锁的统计数据。这些统计数据包括锁被请求的方式、锁被持有的总时间以及锁被持有的平均时间。它可以与 IBM 32 位和 64 位的 Runtime Environment for Linux v1.4.0 和更新的版本一起使用。JLM 工具不能与非 IBMJVM 一起使用,因为这个工具使用了 IBM 对 JVM Profiler Interface(JVMPI)的扩展。
JLM 是 Java 剖析器所提供的一个专门功能,后者通常称作 jprof。Java 剖析器在 PowerPC 上实现为 libjprof.so 库。基于套接字的命令行应用程序 rtdriver 提供了访问 Java 剖析器的接口。类似于其他 Performance Inspector 工具,可以在 /piperf/bin 目录中找到 rtdriver 和 libjprof.so。
如何运行 JLM?如何解读 JLM 报告?下面的内容摘录自一个 log-jlm 文件:         
1
2
3
4
5
6
7
8
9
Java Lock Monitor Report
Version_5.0
Built : (Tue Apr 27 13:57:19 PDT 2004)
Platform : (Linux-ppc64)
JLM_Interval_Time 26896040
System (Registered) Monitors
%MISS GETS NONREC SLOW REC TIER2 TIER3 %UTIL AVER-HTM MON-NAME
0     4     2     0    2    0     0     0   26898   Monitor Cache lock
0     2     2     0    0    0     0     1   151640  Thread queue lock




报告包括三个部分,一个头,随后是两部分:System(Registered)Monitors 和 Java(Inflated)Monitors。System(Registered)Monitors 中的锁由 JVM 及其组件持有,Java(Inflated)Monitors 中的锁由用户 Java 程序持有。为简短起见,前面的摘录中略去了 Java(Inflated)Monitors 部分,不过,Java(Inflated)Monitors 中的锁的统计数据解释与 System(Registered)Monitors 部分所展示的锁完全相同。
头中包含的是关于 JLM 工具的信息,包括运行的工具的版本,工具是何时编译的,以及工具所运行的平台。JLM_Interval_Time 域中包含的是自执行         jlmstart 命令到执行         jlmdump 命令期间所发生的时基节拍数。      
接下来,报告显示了 System(Registered)Monitors 的统计数据。需要对这些统计数据做一下关于锁被请求的方式的简短说明。可以通过两种方式(        递归地或        非递归地)的其中一种来请求锁。如果锁是以递归方式被请求,那么发出请求的线程已经持有了它。如果锁是以非递归方式被请求,则发出请求的线程还没有持有它。有两种类型的非递归锁:快的和慢的。快锁是立即被请求的,没有等待。慢锁由另一个线程持有,在可以被请求之前必须被那另一个线程释放掉。      
System(Registered)Monitors 图表中的统计数据可以如下解释。图表中的每一行指的是一个不同的锁。锁的名称可以在右侧的 MON-NAME 栏中找到。
栏意义%MISS锁以非递归方式被请求但是不得不等待的次数百分比。计算公式为 %MISS = 100 * (SLOW / NONREC)GETS锁被请求的次数。计算公式为 GETS = FAST + SLOW + RECNONREC锁以非递归方式被请求的次数SLOW锁以非递归方式被请求但是不得不等待的次数REC锁以递归方式被请求的次数TIER2 and TIER3由于这一信息不用于 PowerPC,所以可以忽略它%UTIL从执行               jlmstart 命令到执行               jlmdump 命令期间锁被持有时间所占的百分比。计算公式为 100 * (Hold_Time / JLM_Interval_Time),其中               Hold_Time是锁被持有时发生的时基节拍数目            AVER-HTM在每一次非递归请求期间锁被持有时发生的平均时基节拍数目




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0