簡體   English   中英

如何在沒有重建的情況下在Linux平台上分析程序?

[英]How to profile program on Linux platform without rebuilding?

我已經使用了兩個分析工具(Solaris上的VTune和Solaris上的dbx(在sunstudio中)),它可以在不重建它們的情況下對程序進行分析,在分析過程中,程序只能以與正常相同的速度運行。 這兩個功能都為我節省了很多時間。

現在我想知道Linux平台上是否有一些免費工具可以做同樣的事情。 我想我需要基於抽樣的分析工具。 VTune很好但價格昂貴......我聽說過gprof和valgrind。 但似乎gprof需要對程序進行檢測(因此我們必須重建程序)並且valgrind將會大大減慢程序執行速度。 (來自valgrind的介紹,Cachegrind運行程序比正常情況慢20到100倍,而我需要分析的Callgrind基於Cachegrind)

對於分析,我只需要弄清楚函數調用的執行時間,這樣我就可以找出性能下降的位置。 實際上我不需要很多低級分析信息,因為Cachegrind提供了......

oprofile非常好,但設置起來可能很困難。 它也不需要您重建您的程序。

與Paul保持一致,我認為Zoom可能是您可以支付的最佳Linux分析器。

然而,對於真實的結果 ,我依賴於這種簡單的方法 ,這是我在分析器發明之前就已經使用過的。

Linux的性能計數器是一個可用於內核2.6.31及更高版本的新工具; 與valgrind或OProfile相比,它對程序和整個系統的侵擾性較小。

Zoom是一個比oprofile更好的選擇。 它與Mac OS X上的Shark類似,如果您曾經使用過它。 這是商業(199美元),但您可以從www.rotateright.com獲得免費試用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM