我想知道所有可能的方式(或至少流行的方式),其中编译器可以/优化我们用C++编写的代码吗?我也想知道如何完成优化(在每种情况下)!
到目前为止,我知道两个优化,即,空基优化(EBO)和返回值优化(RVO)。还有什么?我听说过“const”优化,“未使用的变量”优化。他们是什么?
。
我想知道所有可能的方式(或至少流行的方式),其中编译器可以/优化我们用C++编写的代码吗?我也想知道如何完成优化(在每种情况下)!
到目前为止,我知道两个优化,即,空基优化(EBO)和返回值优化(RVO)。还有什么?我听说过“const”优化,“未使用的变量”优化。他们是什么?
。
令人难以置信的是广泛的,因为有很多的优化和编译器编写者总是想着多了起来。它们中有很多,一些针对运行时间进行优化,另一些针对二进制大小进行优化。许多也不是特别的C++,一般的编译器优化技术是针对许多不同语言的编译器/解释器而实现的。
那么几个:
更多信息:
全部可能方式?当然你在开玩笑。为此,请浏览多年的编译器研究和实践。
对于具体的实例,查找每个在这里的选项:http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html
从标准文档,第1.9节,
4)这一规定有时被称为“为假设”规则,因为的实现可以自由地忽视本国际标准 的任何要求,只要结果就好像该要求已被遵守一样,只要可以从观察者确定该计划的可行行为。例如, 一个实际的实现不需要评估表达式的一部分,如果它可以推断出它的值没有被使用,也不会产生影响程序可观察行为的副作用。
因此,实际上符合标准的编译器可以,只要它产生的所需结果进行任何优化。
http://en.wikipedia.org/wiki/Category:Compiler_optimizations – icecrime 2010-12-03 07:45:16
什么是点? – avakar 2010-12-03 08:20:45
点?哪个点? – Nawaz 2010-12-03 08:23:28