测量时间.net线程等待IO

时间:2011-01-25 18:59:29

标签: .net io threadpool

这是How much time spent in a .NET Thread?

的延续

我知道如何测量线程的cpu时间(http://www.codeproject.com/KB/dotnet/ExecutionStopwatch.aspx),但我不知道如何测量线程的IO等待。线程等待IO,被中断。当其他线程执行时,我们的线程的IO操作已经过了,我们返回到我们的线程,我们停止秒表,但它显示错误的大时间。关于这个的任何想法?

1 个答案:

答案 0 :(得分:1)

您是否需要专门在代码中完成此操作?如果你使用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调用的信息。