在C,Linux 3.2中:有沒有一種方法來編程收集每個pthread
創建的線程在某些程序上的狀態?例如,我想知道每個線程運行的時間,並處於空閒狀態。pthreads:以編程方式收集花費在不同州上的時間信息?
6
A
回答
1
clock_gettime()
可以返回線程特定的CPU時間。簡單地做:
struct timespec ts;
clock_gettime(CLOCK_THREAD_CPUTIME_ID, &ts);
但從我的理解這是這個線程的用戶和系統時間的總和。您還應該在手冊頁末尾考慮關於SMP系統的警告消息。另外,如果您不想在當前線程上,但在某些pthread上使用時間信息,則可以使用clockid_t
與clock_gettime()
一起使用,使用int pthread_getcpuclockid(pthread_t thread, clockid_t *clock_id)
。
1
編輯:爲了獲得空閒時間,我會減去總時間線程處於活動狀態的系統和用戶時間。
其他可用於探測的工具包括:系統tap,swtrace,tprof,oprofile,perf,sysprof,ptt等。
相關問題
- 1. 如何以編程方式收集網絡信息
- 2. 以編程方式收集GitHub項目發佈統計信息?
- 3. 收集消費者信息
- 4. 在信標周圍花費的時間
- 5. 以編程方式接收短信
- 6. G1垃圾收集器花費大部分時間在Ref Proc
- 7. 的phpMyAdmin的'查詢花費的時間從MySQL分析信息
- 8. 以編程方式獲取Outlook信息
- 9. Java的花費在垃圾收集
- 10. 用戶信息和課程名稱隨時間花費在課程中
- 11. 通過NTP以編程方式在Windows上同步時間
- 12. 在網站上花費的AJAX時間
- 13. 以編程方式在Linux上獲取代理信息
- 14. 花時間以編程方式加載另一個視圖
- 15. MediaCodec.dequeueOutputBuffer在Android上編碼h264時花費很長時間
- 16. 總共花費的時間和所有線程所花費的平均時間
- 17. 火花收集方法處理RDD中存儲的記錄時花費的時間過長[String]
- 18. 在json中花費時間
- 19. 程序員在一週內花費多少時間在編碼和學習上花費
- 20. 以編程方式在UIToolbar上按下時爲信息按鈕呈現Modalviewcontroller
- 21. 在紗線叢集模式下花費Spark應用程序的時間
- 22. 獲取有關在WCF中花費很長時間的方法的進度信息的有效模式?
- 23. 使用Laravel從不同的表中收集不同的信息
- 24. Twitter Bootstrap:花費很長時間編譯
- 25. 以編程方式安裝在棉花糖上的APK安裝
- 26. Scala 2.10編譯器在第一次SBT後花費10倍以上的時間
- 27. 測量程序花費的時間
- 28. 運行程序的時間花費
- 29. 如何檢查在不同dll中花費的執行時間
- 30. 獲取使用gdb和pthreads的線程的編程信息