相关疑难解决方法(0)

为什么我的C#程序在分析器中更快?

我有一个相对较大的系统(到目前为止约25000行)用于监控无线电相关设备.它使用最新版本的ZedGraph显示图表等.该程序使用Win7上的VS2010上的C#进行编码.问题是:

  • 当我从VS内部运行程序时,它运行缓慢
  • 当我从构建的EXE运行程序时,它运行缓慢
  • 当我通过Performance Wizard/CPU Profiler运行程序时,它会运行Blazing Fast.
  • 当我从构建的EXE运行程序,然后启动VS并将探查器附加到任何其他进程时,我的程序加速了!

我希望程序能够快速运行!

解决方案中的每个项目都设置为RELEASE,Debug非托管代码为DISABLED,定义DEBUG和TRACE常量为DISABLED,优化代码 - 我尝试了,警告级别 - 我试过,抑制JIT - 我试过,或者我试过所有StackOverflow上已经提出的解决方案 - 没有成功.程序在分析器外部很慢,在分析器中很快.我不认为问题出在我的代码中,因为如果我将探查器附加到其他不相关的进程中它会变得很快!

请帮忙!我真的需要它在各地快速,因为它是一个关键业务应用程序和性能问题是不能容忍的...

更新1 - 8跟随

-------------------- UPDATE1:--------------------

问题似乎与ZedGraph无关,因为在我用自己的基本绘图替换ZedGraph之后它仍然存在.

-------------------- UPDATE2:--------------------

在虚拟机中运行该程序,该程序仍然运行缓慢,并且从主机运行的探查器不会使它快速.

-------------------- UPDATE3:--------------------

启动屏幕捕获到视频也可以加快程序的速度!

-------------------- UPDATE4:--------------------

如果我打开英特尔图形驱动程序设置窗口(这个东西:http://www.intel.com/support/graphics/sb/img/resolution_new.jpg),只是不断地将光标悬停在按钮上,这样它们就会发光,等等,我的节目加快了!如果我运行GPUz或Kombustor,它不会加速,因此没有GPU上的超频 - 它保持稳定850Mhz.

-------------------- Update5:--------------------

测试不同的机器:

- 在配备Intel HD2000的Core i5-2400S上,UI运行缓慢,CPU使用率约为15%.

- 在配备英特尔G41 Express的同事的Core 2 Duo上,UI运行速度很快,但CPU使用率约为90%(这也不正常)

- 在配备专用Radeon X1650的酷睿i5-2400S上,UI运行速度极快,CPU使用率约为50%.

-------------------- Update6:--------------------

一段代码,显示我如何更新单个图形(graphFFTZedGraphControl易于使用的封装):

public void LoopDataRefresh() //executes in a new thread
        {
            while (true)
            {
                while (!d.Connected)
                    Thread.Sleep(1000);
                if (IsDisposed)
                    return; …
Run Code Online (Sandbox Code Playgroud)

.net c# performance profiler zedgraph

14
推荐指数
2
解决办法
2371
查看次数

标签 统计

.net ×1

c# ×1

performance ×1

profiler ×1

zedgraph ×1