【发布时间】:2012-07-22 23:59:32
【问题描述】:
在某些机器上,我的 .Net 应用程序在 CPU 使用率约为 10% 时处于空闲状态。我的第一个倾向是我的一个后台工作线程正在执行一些我不知道的指令,但我不知道如何按线程隔离 CPU 使用情况(任务管理器只是告诉我我的进程使用 x 线程数 [通常约为 30],而不是占用 CPU 的线程)。
我知道以编程方式我可以遍历this post 中提到的线程,但我不知道这是否会给我所需的信息。是否有一个分析器(商业或其他)可以让我分析每个线程的 CPU 使用情况?
【问题讨论】:
-
Visual Studio 2010 内置了一个很好的分析器,至少在 Ultimate 版中是这样。作为穷人的解决方案,您可以尝试在调试器中随机暂停您的代码,并查看它在哪里中断。在 10% 的 CPU 使用率下,您应该有十分之一的机会找到有罪的代码(如果您有一台多核机器,则更多)。
-
10% 空闲时?选择“在文件中查找”并查找 Sleep(1)/Sleep(0)
标签: c# multithreading performance cpu-usage