我有一个运行速度非常慢的程序(即使在发布时也需要20秒)所以,想要修复它,我尝试使用Visual Studio内置的分析器.但是,当我运行启用了性能分析的程序时,它会在不到一秒的时间内完成.这使得很难找到瓶颈.我会发布代码,但它很长.有没有明显的或不那么明显的原因导致这种情况发生?
编辑:好的,所以我把问题缩小到一堆free()调用.当我将它们注释掉时,程序运行的时间与启用性能分析的时间相同.但现在我有内存泄漏: - /
小智 25
原因是当您在Visual Studio中运行应用程序时,调试器将附加到它.使用分析器运行它时,不会附加调试器.
如果按F5运行程序,即使使用Release版本,调试器仍会附加.
如果您尝试单独运行.exe,或通过IDE使用"Debug> Start Without Debugging"运行程序(或者只需按Ctrl + F5),应用程序的运行速度应与分析器的运行速度一样快.
打开探查器将最终移动你的代码(一点点),这可能掩盖了问题.
hiesenbugs最常见的原因是单元化变量,第二个最常见的原因是在释放后使用内存().由于您的免费似乎可以修复它,您可能会考虑寻找延迟引用,但如果我是您,我仍会首先查找未初始化的变量.
| 归档时间: |
|
| 查看次数: |
2913 次 |
| 最近记录: |