gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 16:16:23 24 4
gpt4 key购买 nike

[见编辑@底部 - 问题可能不是我最初认为的]

大家好,

我正在编写一个图形库,它处理许多过滤器/效果,包括模糊。

我一直在尝试优化我的代码,但遇到了一些我不明白的事情......

当我在没有性能向导的情况下运行代码时,小图像上的简单 3x3 模糊可能需要几秒钟(比应该长得多)。如果我在此延迟期间中断执行,我会得到:

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

运行/点击之间的地址是一致的

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

无论我使用哪种方法启动我的应用程序,我都可以看到在模糊持续时间内,CPU 处于 50%(双核 CPU,没有多线程 ATM,因此最大 1 个核心)。

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

我尝试从 Debug 切换到 Release 构建定义并获得相同的结果。

有人可以向我解释为什么我的代码在附加分析器的情况下会运行得更快吗?感觉就像我在某处犯了一个愚蠢的错误

编辑:

场景/速度:
  • 在 Windows XP 上:
  • 在 VS 中调试:
  • VS 中的分析:快速
  • VS 之外的调试/发布构建:快速

  • 然后我切换到我的第二台机器并得到......
  • 在 Windows 7 上:
  • 在 VS 中调试:快速
  • VS 中的分析:快速
  • VS 之外的调试/发布构建:快速

  • 这似乎表明我错误地识别了问题 - 并不是探查器正在改进事情,而是在 IDE 中进行调试正在杀死它......当我开始开发时,我最初并没有怀疑调试是问题没有问题的 Win7 机器切换到 XP 机器并假设速度变化是由于硬件差异。直到我开始分析,我才看到它运行得有多快......

    最佳答案

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

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

    关于.net - VS2010 调试/分析时的性能差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4129889/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com