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