从本质上讲,我想知道什么是c++优化(/O)和整个程序优化(/GL)。
希望能有更深入的解释。


谢谢
发布于 2012-12-19 01:34:27
MSVC是一种所谓的Optimizing Compiler。OCs采用您已经编写的代码,并重写其中的一部分,以便最小化内存占用,最大化执行速度,或者两者兼而有之。他们通过利用代码要在其上运行的平台的深入技术知识来做到这一点,通常针对特定的指令集。
诸如MSVC、GCC、LLVM和许多其他公司的OCs都利用许多不同的技术来实现这一点。这些技术本身远远超出了互联网帖子所能解释的范围,即使我知道所有这些技术(我不知道)。但有些事情你应该牢记在心。
已优化的程序比未优化的程序更难调试。许多代码可能在执行顺序和程序内的位置方面都被移动了,符号也被剥离了。
一般而言,该标准允许编译器对您的程序进行任何它想要的更改,只要您的程序的可观察行为是相同的"AS-IF“,没有进行任何更改。
编译器中负责优化代码的部分是由非常聪明的人组成的专门团队多年来设计和编写的。最终的结果是一个编译器,总的来说,它在优化您的代码方面比您所希望的要好得多。通常,出于两个原因,尝试实现自己的微优化是没有意义的。首先,编译器通常可以做得更好,其次,您编写的微优化将使编译器无法实现自己的优化。通过手动微优化您的代码,您实际上可能会使您的程序性能变得更差。
https://stackoverflow.com/questions/13938089
复制相似问题