我有一个多线程C#应用程序,其中核心逻辑位于Timer.Elapsed事件处理程序中.事件处理程序包含2个for循环,最多执行n * n = 5 * 5 = 25次.
该应用程序在我的PC上运行良好.我针对应用程序运行了VS 2010 Profiler,平均cpu使用率为20%.
该公司的测试人员说,在他的电脑上,他的电脑上的这个数字会上升到50%到100%之间.这导致了他的性能问题.
>我有什么办法可以解决这个问题吗?
>高cpu使用率究竟意味着什么?
>这会影响他的电脑吗?
>是否可以告诉应用程序仅使用X量
cpu?
任何帮助,将不胜感激.
解决方法
你在想知道和猜测模式.忘记cpu百分比.专业人士所做的是找出为什么该计划花费时间以及是否有必要.
你能做的就是在长循环中运行该代码,然后对其进行采样.
I use this method.堆栈样本将优先落在调用树的重分支中.有可能你可以砍掉一些重型分支并获得良好的加速.