我正在實施某種形式的內部分析器。有什麼方法可以知道一個線程何時被切換出來?我知道windows有事件跟蹤API,我知道perf日誌有多少上下文切換髮生。有沒有辦法在Linux上做到這一點?因爲它將是一個內部工具,所以需要root權限不是問題。Linux獲取上下文切換時間
0
A
回答
2
整理。
請參閱http://man7.org/linux/man-pages/man2/getrusage.2.html關於getrusage()
函數。
請注意,它返回的結構具有自願和非自願的上下文切換數字。此外,你有用戶和系統時間。其他API返回掛鐘時間。
任何大於您的用戶和系統時間的掛鐘時間是您沒有運行的時間。
除此之外,你可以使用內核的ftrace能力。見https://www.kernel.org/doc/Documentation/trace/ftrace.txt
閱讀http://www.brendangregg.com/blog/2015-07-08/choosing-a-linux-tracer.html爲更多的選擇。
+0
謝謝。我一直在Google上搜索。我知道必須有某種方式去做。 – Temp4890
相關問題
- 1. 上下文切換在Linux中需要多長時間?
- 2. 測量上下文切換的時間
- 3. 時間()和上下文切換
- 4. 什麼是上下文切換時間?
- 5. 上下文切換測量時間
- 6. 變量上下文切換時間
- 7. 在Linux中監視上下文切換
- 8. 在Linux中的兩個進程之間的上下文切換
- 9. 線程之間的上下文切換
- 10. 線程上下文切換vs進程上下文切換
- 11. 在Linux上下文獲取SIGSEGV
- 12. 在Linux上跟蹤進程的上下文切換
- 13. 獲取文本時切換激活
- 14. 如何在Windows中獲取上下文切換的通知(7)
- 15. 上下文切換(甚至是獲取列表)崩潰Appium
- 16. 是否可以減少上下文切換時間
- 17. 上下文切換使用了大量的時間嗎?
- 18. 我們如何減少上下文切換時間
- 19. 上下文切換死鎖
- 20. 切換畫布上下文
- 21. Python:GIL上下文切換
- 22. 上下文切換太貴
- 23. PHP上下文切換
- 24. lpc 1769上下文切換
- 25. GPU上下文切換
- 26. 線程量程時間中是否包含上下文切換時間?
- 27. Linux中的上下文切換內核進程
- 28. Linux CFS志願者上下文切換SCHED_OTHER SCHED_FIFO
- 29. 用Linux在Java中調整上下文切換頻率
- 30. 在Linux上使用Python獲取文件創建時間
如果假設分析的*目的*爲找到原因緩慢,或者等價地,如何獲得更快的速度,那麼這種時間是不是做的好方法。相反,[*抽樣狀態*](http://stackoverflow.com/a/378024/23771)效果更好。無論您如何描述它,任何出現在樣本的X部分上的東西都會導致大約一小部分時間。如果你可以避免這樣做,你可以保存一個相應的分數。與時間有關的問題是告訴你什麼是可以避免的,這更加間接。 –
這很有用,因爲如果我可以知道幀緩存不是由我的代碼引起的。節省時間,在我的代碼中找不到問題時尋找問題。我希望每幀數據能夠隔離特定的實例,我發現抽樣並不是那麼好。 – Temp4890