我想知道,如果它可以檢測並執行一些動作每一個我的代碼檢測到CPU上下文切換已經發生(相對於計數許多上下文切換是如何發生的一段時間)時間。無論如何,要做到這一點,例如,C#?程序檢測上下文切換
4
A
回答
6
不,這不可能在C#中的事。因爲C#是一種在用戶模式下運行代碼的託管語言。上下文切換源自內核模式,用戶級別代碼無法訪問。
這可能是可以具有C驅動器,然而,代碼可能會嚴重損壞OS性能和穩定性。
1
上下文切換是非常低的水平核活動因此不大可能(我不知道是肯定的),這樣的掛鉤存在。
你肯定將無法在正常的.Net運行時至少運行代碼來做到這一點,因爲它不會讓一個完全控制線程和內核模式不運行。
現在如果問題是「我可以在C#中編寫內核代碼」而不是 - 是*(* - 我不相信有可用於編譯器的C#將生成可在內核級別執行的本機代碼 - 寫你自己)。
0
我認爲這可能是有用的信息,它是possible with pure C用的getrusage()
struct rusage {
...
long ru_nvcsw; /* voluntary context switches */
long ru_nivcsw; /* involuntary context switches */
};
但我不知道C#
相關問題
- 1. 線程上下文切換vs進程上下文切換
- 2. 從進程上下文切換切換線程上下文有多好?
- 3. 測量上下文切換的時間
- 4. 上下文切換測量時間
- 5. 強制線程上下文切換
- 6. 上下文切換多線程
- 7. 多線程:上下文切換
- 8. 使用SIGALRM切換線程上下文
- 9. 線程和上下文切換C++
- 10. 線程之間的上下文切換
- 11. 設備驅動程序IRQL和線程/上下文切換
- 12. 上下文切換死鎖
- 13. 切換畫布上下文
- 14. Python:GIL上下文切換
- 15. 上下文切換太貴
- 16. PHP上下文切換
- 17. lpc 1769上下文切換
- 18. GPU上下文切換
- 19. 調度程序和上下文切換器之間的區別?
- 20. Windows驅動程序開發:上下文切換回調?
- 21. 中斷處理程序中的上下文切換
- 22. 程序如何計數上下文切換?
- 23. 阻止調度程序在Java中執行上下文切換
- 24. 切換OpenGL上下文或切換上下文渲染目標,而最好?
- 25. 上下文切換問題:管理上下文切換涉及哪部分OS?
- 26. jQuery切換懸停檢測
- 27. 如何檢測運行C#代碼時發生的上下文切換次數?
- 28. 調試器中的c#winforms ....檢測到上下文切換死鎖
- 29. func_get_args檢測上下文
- 30. 如何測量和修復上下文切換瓶頸?
那不是要求你的程序在一個專用的核心全面運行-時間?我不確定這甚至是可能的。 (如果不是程序啓動CPU,它將如何「響應」上下文切換事件) –