vc6.0 debug 比 release 快??_C++ 优化 debug 模式下的运行速度和内存占用

C++ 优化 debug 模式下的运行速度和内存占用

项目中如果使用了大量的 STL 类型,会发现 release 模式比 debug 模式的运行速度快了几十倍甚至上百倍,内存占用页少了很多。造成这个问题的原因在于 STL 库在 debug 模式下会做很多检查,且 debug 模式默认不开启任何优化。

其实办法很简单,分两个步骤:

一、定义 _ITERATOR_DEBUG_LEVEL 宏

宏 _ITERATOR_DEBUG_LEVEL 控制着检查迭代器和调试迭代器支持是否开启。在 debug 和 release 模式下有着不同的默认定义。

b671723191e6578c76ae7dc31fabf846.png

如果无所谓 STL 的迭代器调试,在导入任何 STL 库之前定义 _ITERATOR_DEBUG_LEVEL 为 0 即可,禁用后 debug 模式的运行速度将大大提升。

注意:如果有多个项目互相调用,必须在每个项目中都定义该宏,否则会产生不可预料的异常。

补充:在编译 boost 库时,debug 模式默认编译出来的 lib 无法与 debug 模式下将 _ITERATOR_DEBUG_LEVEL定义为 0 的项目混合编译,这种情况下需要在编译 boost 库时指定宏 _ITERATOR_DEBUG_LEVEL = 0 的定义(参见:https://www.boost.org/doc/libs/1_71_0/doc/html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值