。
我想知道所有可能的方式(或者至少是流行的方式),编译器可以/确实优化我们用C++编写的代码?我也想知道优化到底是如何完成的(在每种情况下)!
到目前为止,我注意到了两个优化,即。空基优化(EBO)和返回值优化(RVO)。还有些什么?我听说过“常量”优化,“未使用的变量”优化。他们是什么?
。
发布于 2010-12-03 15:19:58
令人难以置信的广泛,因为有许多优化和编译器编写者总是考虑更多。它们有很多种,一些针对运行时进行优化,另一些针对二进制大小进行优化。许多也不是专门的C++,通用的编译器优化技术是为许多不同语言的许多编译器/解释器实现的。
只有几个:
更多信息:
发布于 2010-12-03 15:13:31
所有可能的方法?你肯定是在开玩笑吧。要做到这一点,请查看多年的编译器研究和实践。
有关具体的示例,请在此处查找每个选项:http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html
发布于 2010-12-03 15:20:37
来自标准文档,1.9节,
4)这一规定有时被称为“如果”规则,因为实现可以自由地忽略本国际标准的任何要求,只要从程序的可观察行为可以确定的情况下,该要求已经被遵守。例如,一个实际的实现不需要计算表达式的一部分,如果它可以推断出它的值没有被使用,并且没有产生影响程序可观察行为的副作用。
因此,实际上,符合标准的编译器可以执行任何类型的优化,只要它产生所需的结果。
https://stackoverflow.com/questions/4343267
复制相似问题