2009年9月1日 星期二

profiling tool的使用

我用的是valgrind中附的callgrind
另外觀看結果是用kcachegrind(這是一個KDE上面的application)
為什麼我不用gnome上面的application 原因很簡單  就是我找不到在gnome裡面對應的程式
不然我都用gnome的桌布怎麼會用KDE的application
好所以說我只要用的就是callgrind跟kcachegrind(如果是gnome桌布的話 灌的時後 會灌一堆KDE的套件)
這兩個套件都很好灌  都是直接打名字在synaptic裡面 就會找到了(callgrind是要打valgrind)

接下來就是用法了 因為callgrind是valgrind中的其中一個工具 所以說用callgrind 只是用valgrind的其中一個工具

valgrind --tool=callgrind [option] program_name
以上就是指令的打法
後面program_name(包括program_name以及他後面會接的一大堆有關這個program的選項) 這些就是原本我們執行這個程式後面會接的選項
中間的option是callgrind他自己特殊的選項 這裡我沒有特別去看
我用的時候都是用default就好了
我稍微看了一下 這裡的選項有一些功能像我們不一定要在程式開始的時候就profiling
可以執行到中間的時候在進行profiling 可能這是一個interactive的程式之類的
這時後會用到另一個指令是callgrind_control (我沒用過)

當打完以上的指令(就是valgrind那行) 然後等程式執行完(會比正常執行時間久 久很多)
會出現一個檔(如果沒有自己指定其他檔名的話) callgrind.out.[執行時候的pid]
(當然也有可能出現兩個檔以上 看你用幾個thread來執行程式)
這時候就可以用kcachegrind來看結果  相信我直接看檔什麼也看不懂的
kcachegrind是GUI的  很容易  看一看就會知道結果(比callgrind_annotate好看多了)

沒有留言:

張貼留言