我已經編寫了一個依賴於線程的程序。此外,還需要測量每個線程所花費的總時間,以及執行時間(內核時間加上用戶時間)。線程執行時序
可以有任意數量的線程,許多線程可以一次運行。這歸功於用戶活動。我需要它們儘可能快地運行,所以使用像WMI/Performance Monitor那樣的一些開銷來測量線程時間並不理想。
目前,我使用GetThreadTimes,如本文所示:http://www.codeproject.com/KB/dotnet/ExecutionStopwatch.aspx
我的問題很簡單:我理解.NET線程可能不是一比一的基礎與系統線程上對應(儘管到目前爲止我的測試中,似乎是一對一的)。既然如此,如果.NET決定將兩個或更多的線程放到一個系統線程中,我會從我的計時代碼中得到奇怪的結果嗎?如果是這樣(或者甚至沒有),是否有另一種方法來測量.NET線程的內核和用戶時間?
就我個人而言,我會選擇像[SmartThreadPool](http://www.codeproject.com/KB/threads/smartthreadpool.aspx)這樣的線程池,並使用它們的性能計數器來衡量事物。 –
我很難理解你的問題,而不是你真正想要衡量的是什麼,爲什麼。您是否考慮過使用秒錶類型+日誌記錄進行簡單的計時或任何常規CPU分析器,例如ANTS或Jetbrain? – Mahol25