有來源是這樣的:調試C程序慢功能(通過gcc構建)
void foo() {
func1();
if(qqq) {
func2();
};
func3();
func4();
for(...) {
func5();
}
}
我想獲得這樣的信息:
void foo() {
5 ms; 2 times; func1();
0 ms; 2 times; if(qqq) {
0 ms; 0 times; func2();
0 ms; 2 times; };
20 ms; 2 times; func3();
5 s ; 2 times; func4();
0 ms; 60 times; for(...) {
30 ms; 60 times; func5();
0 ms; 60 times; }
}
即有關執行該行所花費的平均時間(實際時鐘時間,包括在系統調用中等待)以及執行次數的信息。
我應該使用什麼工具?
我希望該工具儀器各功能來衡量它的運行時間,這是使用儀器內部調用函數寫入日誌文件(或計數在內存中,然後轉儲)。
可以考慮一個稍微不同的期待?當一行代碼處於活動狀態時,它位於堆棧上,因此如果您知道總時間以及一行代碼在堆棧中的時間比例,則知道它需要多長時間。你可以從堆棧樣本中獲得這些信息,並且可以告訴哪些代碼行(和函數,如果你喜歡的話)在經過優化後可以提供最大的收益。 – 2010-10-21 00:40:25