我有一个相对较小的程序,它运行在我从mentalis网站上的代理套接字类中。出于某种原因,该程序在运行时很快成为100%的cpu资源。我已经做了所有我能想到的,在代码中发现问题是在visual studio中有一个函数,它有助于识别代码的哪些部分是最耗费资源的?关于为什么socket类会成为这样一个cpu hog的任何想法?
答案 0 :(得分:2)
Visual Studio 2010 Premium和Enterprise版本内置了一个分析器 - 我相信该功能称为“Performance Explorer”。如果这不可用,只需执行调试构建并通过定期停止代码来查看最常执行的代码(编辑:如Doc Brown所述)来进行一些手动分析。
答案 1 :(得分:1)
以调试模式运行程序,当CPU负载达到100%时,使用Ctrl-Alt-Break中断运行过程。您很可能完全停止代码中导致问题的部分程序。如果一次中断不足以找到正确的代码行,请重复几次。
只是猜测:也许套接字类会进行某种轮询或忙等待?