代码之家  ›  专栏  ›  技术社区  ›  Basic

VS2010调试/分析时的性能差异

  •  4
  • Basic  · 技术社区  · 15 年前

    [请参见编辑@底部-问题可能不是我最初所想的]

    大家好,

    我一直试图优化我的代码,遇到了一些我不明白的事情。。。

    当我运行代码时 没有

    No Source Available
    System.dll!Microsoft.Win32.SystemEvents.WindowThreadProc() + 0xc2 bytes
    

    运行/单击之间的地址一致

    如果我通过性能向导运行代码,模糊效果会发生在 明显的延迟。

    我可以看到,CPU是在50%(双核CPU,没有多线程ATM,所以MASUN 1核)在模糊的持续时间,无论我用什么方法启动我的应用程序。

    如果我扩大了模糊的复杂性,以得到明显的延迟,我猜想,附加分析器可以提高性能至少2个数量级。

    有人能给我解释一下为什么我的代码会在附加了探查器的情况下运行得更快吗?感觉好像我在某个地方犯了个愚蠢的错误

    编辑:

    场景/速度:

      • 在VS中调试:
      • 在VS中分析:快速
      • 在VS:Fast之外调试/发布构建

    然后我换了第二台机器。。。

    • 在Windows 7上:
      • 在VS中调试:
      • 在VS:Fast之外调试/发布构建

    这似乎表明我错误地发现了问题-这并不是探查器正在改进,而是IDE中的调试正在扼杀它。。。我最初并不怀疑调试是问题,因为我开始在Win7机器上开发,没有问题,然后切换到XP机器,并假设速度变化是由于硬件差异。直到我开始分析,我才发现它跑得有多快。。。

    1 回复  |  直到 15 年前
        1
  •  2
  •   Kevin Anderson    15 年前

    这完全是猜测,但是visual studio是否正在运行并具有管理权限,但您的程序不是吗?基本上,在启动visual studio时,您是否得到了UAC升级对话框,因此,如果通过那里的调试器/分析器运行,您可以最大限度地使用CPU,但可能不允许使用“用户空间”进程?一个相关的问题是,当使用调试器(而不是profiler)运行时,您是否获得了性能“改善”。

    完全是猜测,但可能是一个开始寻找的地方。