2012-05-27 25 views

回答

1

clock_gettime()可以返回線程特定的CPU時間。簡單地做:

struct timespec ts; 
clock_gettime(CLOCK_THREAD_CPUTIME_ID, &ts); 

但從我的理解這是這個線程的用戶和系統時間的總和。您還應該在手冊頁末尾考慮關於SMP系統的警告消息。另外,如果您不想在當前線程上,但在某些pthread上使用時間信息,則可以使用clockid_tclock_gettime()一起使用,使用int pthread_getcpuclockid(pthread_t thread, clockid_t *clock_id)

1

getrusage()

編輯:爲了獲得空閒時間,我會減去總時間線程處於活動狀態的系統和用戶時間。

其他可用於探測的工具包括:系統tap,swtrace,tprof,oprofile,perf,sysprof,ptt等。

相關問題