c++ - 为什么启用分析后我的程序运行得更快?

标签 c++

我有一个运行速度很慢的程序(即使在发布时也需要 20 秒),所以为了修复它,我尝试使用 Visual Studio 的内置分析器。但是,当我在启用分析的情况下运行程序时,它会在不到一秒的时间内完成。这使得很难找到瓶颈。我会发布代码,但它很长。是否有任何明显或不那么明显的原因导致这种情况发生?

编辑: 好的,所以我将问题缩小到一堆 free() 调用。当我将它们注释掉时,程序运行的时间与启用分析的时间相同。但是现在我有内存泄漏:-/

最佳答案

原因是当您在 Visual Studio 中运行应用程序时,调试器会附加到它。当您使用分析器运行它时,调试器未附加。

如果您按 F5 运行程序,即使使用 Release 构建,调试器仍会附加。

如果您尝试自行运行 .exe,或通过 IDE 使用“调试 > 不调试启动”(或仅按 Ctrl+F5)运行程序,应用程序的运行速度应该与使用探查器时一样快。

关于c++ - 为什么启用分析后我的程序运行得更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1964573/

相关文章:

c++ - 改变 glm::perspective 中的角度反射(reflect)了对象

c++ - "operator MyType () {}"在C++中是什么意思

c++ - 为什么新的随机库比 std::rand() 更好?

c++ - 设置 eclipse 链接器以编译和运行 GLFW 应用程序 - 如何?

c++ - 为什么是 for(;;);无限循环?

c++ - 传递指向 API 函数的指针

c++ - linux 指针、引用和方法

c++ - 如何连接 LPCWSTR?

c++ - Flatbuffers 创建枚举 vector

c++ - 在 Visual Studio 中播放 .wav 文件时出错