- 1.Oprofile 安装
下载地址 http://oprofile.sourceforge.net/download/ ,安装过程略
- 2.使用
2.1 启动 oprofile , opcontrol --vmlinux=/usr/lib/debug/lib/modules/2.6.18-164.el5debug/vmlinux –start
这里如果没有 vmlinux 的话,去下一个与 kenerl 相同版本的带 debug 信息的 kernal 安装下,我这里下载了 kernel-debug-debuginfo-2.6.18-164.el5.x86_64.rpm , kernel-debuginfo-common-2.6.18-164.el5.x86_64.rpm 进行了安装。
2.2 运行应用程序,当运行的是 java 程序,如果需要 jit 信息,则需要在 java 的参数中指定 agent 路径, java -agentpath:/usr/local/oprofile-0.9.7/lib/oprofile/libjvmti_oprofile.so XXXApp
程序完成后, Opcontrol --stop
- 3. 生成报告
Opreport -l –m all > report.txt, 如果需要生成 call graph 加上 -c 参数
- 4. 总结
使用 oprofile 统计了一下 java 程序的热点信息,出来的结果没有 vtune 好,并且出来的 call graph 也是不准确的。 C 程序的效果等待后续去验证下。