关于程序的性能分析工具

关于程序的性能分析工具
实现高性能服务器免不了进行代码级性能分析和系统级压力测试,简单整理一下代码级的性能分析工具
1.gprof : 非常易于使用 , 编译程序时使用-pg选项,然后执行程序,只要程序正常退出(从main()返回或exit退出) , 会生成gmon.out文件,这个文件包含了程序运行时收集的各种统计数据,使用gprof分析这个结果文件可以显示flat profile , call graph , annotated source 。值得注意的是无法跟踪内核态的执行情况和进程切换带来的影响。
2.valgrind :强大和全面的工具,主要包括memcheck,call graph , cache check , thread detector , heap profiler,测试server程序时需要注意信号处理,使程序正常退出。
3.oprofile : 不但可以分析单个程序性能,还能够分析系统性能 ,作为独立模块运行,使用cpu的计数寄存器进行数据分析。
             opcontrol --no-vmlinux --start    启动profile,此时系统会把收集的数据写入文件,系统的iowait非常高。
             opcontrol --stop                  关闭profile。
             opreport -l server_program        查看结果。

4.tcmalloc : google的内存分配器和profile工具,包括内存检查和cpu检查 ,可以编译进代码,也可以通过LIB_PRELOAD加载,配合环境变量实现profile功能。
            内存分配器:使用了线程cache ,在多线程的环境中比ptmalloc效率高2倍左右。

5.vtune    :intel开发的付费工具。


你可能感兴趣的:(关于程序的性能分析工具)