回答
对于典型的性能基准测试,这是我使用的。
- gprof/oprofile - 用于CPU密集分析您的代码。
- 的netstat /空灵 - 网络统计
- 的iostat/SAR - 用于I/O
- 的vmstat - 内存
- 的mpstat/SAR - CPU使用率
现在ü可以隔离问题基于这些工具的输出。
例如: - 如果I/O是恒定的并且在限制范围内,您可以将I/O视为一个问题。 如果CPU使用率如图所示my mpstat很大,那么使用gprof/oprofile进行分析。
没有将它们全部用于不同的运行,它很难找出瓶颈。
注意:U可以编写脚本将它们全部运行起来,并将结果存储在每次运行的指定文件夹中。
+1提到好的工具。 + valgrind用于极其CPU /缓存密集型任务。为了快速启动,在程序运行时检查CPU与经过时间的比率是很有必要的 - 可以看到最高。如果它非常闲散,那么你需要改进你的网络 - 考虑用其他方式打包/压缩数据。如果CPU固定,使用'gprof'或其他来描述哪些功能花费时间,或者引入自己的定时器(boost可以使用高分辨率定时功能)来衡量处理的特定部分需要多长时间才能完成。 – 2010-10-05 07:19:06
到目前为止,我所知道的最好的Linux分析器是Zoom。虽然这是一个商业产品,这不是太昂贵的,你可以要求获得30天的免费评估许可证
我建议Valgrind的为
- CPU使用率,callgrind子模块(源代码行粒度)
- 内存泄露
- 楼宇通话图
- 一些高级问题,如发现多线程锁定机制中的问题
callgrind输出可以通过KCacheGrind直观显示。
由于@保罗说,给Zoom一试。
就我个人而言,我使用this method,它适用于these reasons,缩放接近它。这是一种技术,some programmers have independently discovered。
我也被告知OProfile可以做到,但你必须知道你需要做什么。
- 1. C++测试代码
- 2. 测试时,Java和c#代码之间的不同性能
- 3. 测试C/C++源代码
- 4. C#从性能测试
- 5. 测试C++代码和IsBadWritePtr
- 6. C代码循环性能
- 7. C++的性能测试实用程序
- 8. 如何测试C函数的性能?
- 9. 性能测试
- 10. 性能测试
- 11. 测试代码
- 12. 独立Ruby代码(宝石)的性能和资源测试
- 13. 如何测量jQuery代码的性能
- 14. VS2010编码的UI测试VS Web性能测试
- 15. C/C++代码的编码和命名约定的测试
- 16. 在托管代码中集成测试NUnit的C++代码
- 17. 你如何测试非功能代码?
- 18. 单元和功能测试iPhone代码?
- 19. 如何在C#中测试性能?
- 20. 清除C#性能测试缓冲区?
- 21. C#单元测试代码问题
- 22. 单元测试旧版C#代码
- 23. 单元测试C生成python代码
- 24. c程序代码测试用例
- 25. 用于测试性能的C++单元测试(合成基准测试)
- 26. C#代码和SQL Server的性能
- 27. 提高C#代码的性能
- 28. 优化C++代码的性能
- 29. Cython性能测试
- 30. Jmeter性能测试:
你是说你需要一个好的分析工具? OProfile也许,valgrind工具? – erjot 2010-10-05 06:20:10
代码计算密集型(CPU),磁盘I/O密集型,网络I/O密集型,内存消耗,多线程等?了解一些初始方向将帮助您找到更合适的工具。 – rwong 2010-10-05 06:20:44
你想要执行时间或分析代码的工作吗? – jknair 2010-10-05 06:20:53