lxyfirst

C++博客 首页 新随笔 联系 聚合 管理
  33 Posts :: 3 Stories :: 27 Comments :: 0 Trackbacks
实现高性能服务器免不了进行代码级性能分析和系统级压力测试,简单整理一下代码级的性能分析工具
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开发的付费工具。


posted on 2009-01-15 12:07 star 阅读(4070) 评论(1)  编辑 收藏 引用

Feedback

# re: 关于程序的性能分析工具 2009-01-17 23:24 陈梓瀚(vczh)
visual studio 2008 team system有performance wizard. 跟IDE和编译器完美结合。  回复  更多评论
  


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理