用到gprof時才知道,原來gprof只能對主線程統計耗時。manual上也沒寫線程相關的問題?。?/p>
不過有現成的解決方案:http://sam.zoy.org/writings/programming/gprof.html
該方案封裝了pthread_create(), 讓線程初始化執行一個setitimer(ITIMER_PROF, ...)。
簡易的方法是直接在代碼中寫個setitimer()。
./a.out
gprof
這樣就能統計出foo()的耗時了。沒有setitimer()就不會有foo()的耗時統計。
Powered by: C++博客 Copyright © 金慶