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