发布模式和调试模式之间的编译时间差异
difference in compilation time between release and debug mode
我有一个用于编译c源代码的sln文件。当我在VS2008中以发布模式编译它时,编译代码大约需要4分钟。但在调试模式下,编译代码只需要1分钟。我不明白发布模式和调试模式的区别。
有人能帮我吗?
优化器在Release配置中默认打开。是的,它需要时间来完成它的工作。链接器也不再进行增量链接,这可能会产生很大的影响。
你从来没有真正关心过这一点,发布构建是你在完成或留给构建服务器时所做的事情。
在调试模式下构建时,编译器所做的所有额外工作都是添加调试信息(为了简化,基本上是一个所有符号的表),这非常简单,而且速度很快。在发布模式下构建时,编译器会进行大量优化,如果代码不是琐碎的,那么这些优化可能会非常耗时。
在发布模式下,编译器会花更多的精力进行优化——这可能相当耗时,因为它做的事情与数独求解器或国际象棋引擎类似——在这种特殊情况下,它会尝试很多不同的选项,试图找到最好的选项。
相关文章:
- C++中std::resize(n)和std::shrink_to_fit之间的区别
- 具有奇怪重复模板模式的派生类中的成员变量已损坏
- int(c) 和 c-'0' 之间的区别。C++
- 在cuda线程之间共享大量常量数据
- 如何在CLIPS中优化不同模板事实之间的模式匹配
- 在CLION中调试模式和运行模式之间的怪异结果
- 使用用户模式和内核之间共享内存的慢速通信
- 原型模式导致"actual object"和"prototype"之间的代码重复
- 用于在硬件接口之间切换的最佳设计模式
- 服务和用户模式进程之间的共享全局事件不起作用
- VS2005调试模式和发布模式之间存在巨大的性能影响
- 避免忙于等待,并在实时和非实时线程之间切换模式
- 发布模式和调试模式之间的编译时间差异
- 设计模式-适配器和桥接器之间的区别
- 如何忽略c++ regex中记号之间的空白(自由空格模式)
- IPv4和IPv6之间的Mix模式通信
- 是否可以在CEdit控件的纯数字和字母数字输入模式之间切换
- 在Windows OpenGL应用程序中是否有一种优雅的方式来处理在全屏和窗口模式之间切换
- 通过变量在fstream trunk和应用程序模式之间切换
- 如果字符位于引号之间,则不匹配(AKA具有编程字符串模式)