這是一個延續How much time spent in a .NET Thread?測量時間.NET線程花在等待IO
我知道我可以衡量一個線程(http://www.codeproject.com/KB/dotnet/ExecutionStopwatch.aspx)的CPU時間,但我不知道如何來衡量的IO等待線。線程等待IO,被中斷。當其他線程執行時,我們線程的IO操作已經結束,我們返回到線程,停止Stopwatch,但它顯示的時間不正確。對此有何想法?
這是一個延續How much time spent in a .NET Thread?測量時間.NET線程花在等待IO
我知道我可以衡量一個線程(http://www.codeproject.com/KB/dotnet/ExecutionStopwatch.aspx)的CPU時間,但我不知道如何來衡量的IO等待線。線程等待IO,被中斷。當其他線程執行時,我們線程的IO操作已經結束,我們返回到線程,停止Stopwatch,但它顯示的時間不正確。對此有何想法?
您是否需要在代碼中專門完成此操作?如果使用WinDbg,則可以使用!runaway獲取內核和用戶模式http://blogs.msdn.com/b/debuggingtoolbox/archive/2009/08/20/special-command-cpu-time-for-each-thread-with-runaway.aspx的每個線程的CPU時間。
或者,您可以使用ProcessExplorer。如果您雙擊該過程,則可以在線程選項卡上獲取該信息。 http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx。
或者,C++ How to get the cpu usage per thread on windows (win32)上的此線程具有關於Win32 API調用的信息。