【发布时间】:2009-06-26 15:59:41
【问题描述】:
Martinus gives a good example 的代码,其中编译器在运行时通过计算乘法来优化代码:
Martinus 代码
int x = 0;
for (int i = 0; i < 100 * 1000 * 1000 * 1000; ++i) {
x += x + x + x + x + x;
}
System.out.println(x);
Constant Folding -compiler 在编译时优化后的代码 (Thanks to Abelenky for pointing that out)
int x = 0;
for (int i = 0; i < 100000000000; ++i) {
x += x + x + x + x + x;
}
System.out.println(x);
在我看来,这种优化技术似乎微不足道。 我想这可能是 Sun 最近开始忽略的技术之一。
我对编译器进行的两种优化感兴趣:
- 在今天的编译器中被忽略的优化,例如在运行时的 Java 编译器中
- 当今大多数编译器使用的优化
请把每种优化技术放在一个单独的答案中。
编译器在 90 年代 (1) 和今天 (2) 使用了哪些技术?
【问题讨论】:
标签: optimization compiler-construction