在Eclipse中控制编译器选项

时间:2009-10-07 06:02:28

标签: java android eclipse optimization jvm

有没有办法控制Eclipse在构建项目时使用的java编译器的优化级别? 或者这个问题不再相关,是否所有优化都推迟到vm?

我问的原因是我最近写了一个快速测试:

private static int test_f(int i) { return i * 42; }

...

int z = 41;
for(int i = 0; i < 10000; ++i) { z = z*42; }         // this loop runs in X seconds
for(int i = 0; i < 10000; ++i) { z = test_f(z); }    // this loop runs in 10*X seconds

这个测试实现的结果test_f()没有内联,即使它确实如此 是它的主要候选人。也应该可以在编译时进行内联。

环境/目标vm是Android / Dalvik。

更新: 我进一步调查了这一点,结果发现Dalvik在这个日期没有内联。

1 个答案:

答案 0 :(得分:2)

是的,优化基本上是由桌面Java的JIT完成的,所以编译器不会做像内联这样的事情。这些天-O甚至没有将javac列为选项(虽然它不会破坏编译;我怀疑它没有任何区别)。

不要忘记Dalvik 没有 JIT。