C# 确定高处理器使用率的来源

C# 确定高处理器使用率的来源,c#,winforms,.net-3.5,cpu-usage,icq,C#,Winforms,.net 3.5,Cpu Usage,Icq,我已经将ICQ库(它是开源的)添加到我的应用程序中。但如果我通过ICQ服务器连接,它将增加CPU的使用率(高达30%)。所以ICQ库中的某些东西正在大量使用CPU。但是我不知道如何确定它是什么并减少CPU的使用。如果它是开源的,并且您已经将代码添加到您的项目中;在连接探查器的情况下运行它 最简单的方法是: 在调试器中运行程序 然后在某个时候进入调试器 无论您身在何处,请查看调用堆栈 重复步骤2-3 只需做两三次,就可以很好地了解大部分执行时间都花在了哪里。如果大部分执行时间都花在一个函数上

我已经将ICQ库(它是开源的)添加到我的应用程序中。但如果我通过ICQ服务器连接,它将增加CPU的使用率(高达30%)。所以ICQ库中的某些东西正在大量使用CPU。但是我不知道如何确定它是什么并减少CPU的使用。

如果它是开源的,并且您已经将代码添加到您的项目中;在连接探查器的情况下运行它


    • 最简单的方法是:

    • 在调试器中运行程序
    • 然后在某个时候进入调试器
    • 无论您身在何处,请查看调用堆栈
    • 重复步骤2-3

    • 只需做两三次,就可以很好地了解大部分执行时间都花在了哪里。如果大部分执行时间都花在一个函数上,那么几乎每次您进入调试器时,该函数都会出现在调用堆栈上。

      我在'icq\u sharp\IcqSharp.Util\Timer.cs'文件中找到它。 请参阅函数:
      private void dowworker()
      。有一个没有延迟的循环。
      只需添加
      Thread.Sleep(10)

      我发现,VS已经包含了这个(ALT+F2)。谢谢有一个带有
      DateTime的while循环。现在,
      在循环中调用此方法需要大量CPU时间。