1

.

我想知道编译器可以/确实优化我们用 C++ 编写的代码的所有可能方式(或至少流行的方式)?我也想知道优化是如何完成的(在每种情况下)!

到目前为止,我知道两个优化,即。空基优化 (EBO) 和返回值优化 (RVO)。还有什么?我听说过“const”优化,“unused variable”优化。这些是什么?

.

4

3 回答 3

6

所有可能的方法?你肯定是在开玩笑。为此,请查看多年的编译器研究和实践。

对于具体示例,请在此处查找每个选项:http: //gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html

于 2010-12-03T07:13:31.350 回答
5

来自标准文档,第 1.9 节

4) 该规定有时被称为“好像”规则,因为只要结果是好像已经遵守了该要求,只要可以从程序的可观察行为。例如,如果一个实际的实现可以推断出它的值没有被使用并且不会产生影响程序可观察行为的副作用,那么它就不需要评估表达式的一部分。

所以实际上符合标准的编译器可以执行任何类型的优化,只要它产生所需的结果。

于 2010-12-03T07:20:36.777 回答
4

令人难以置信的广泛,因为有许多优化,编译器编写者总是想得更多。它们有很多,一些针对运行时间进行优化,另一些针对二进制大小进行优化。许多也不是专门的 C++,通用编译器优化技术是为许多不同语言的许多编译器/解释器实现的。

一小撮:

更多信息:

于 2010-12-03T07:19:57.690 回答