回答
對於典型的性能基準測試,這是我使用的。
- 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