java - 在 Eclipse 中控制编译器选项

标签 java android eclipse optimization jvm

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

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

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

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

环境/目标虚拟机是 Android/Dalvik。

更新: 我对此进行了进一步调查,结果发现 Dalvik 目前不进行内联。

最佳答案

是的,现在桌面 Java 的优化基本上是由 JIT 完成的,所以编译器不会做内联之类的事情。 -O 现在甚至没有被 javac 列为一个选项(尽管它不会破坏编译;我怀疑它没有什么区别)。

不要忘记 Dalvik 没有 JIT。

关于java - 在 Eclipse 中控制编译器选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1529766/

相关文章:

java - 未知实体bean类,请验证该类是否已使用@Entity注解进行标记

java - 使用 Glide 拉伸(stretch)图像以适应 ImageView

Java (Android) - 同步队列和发送数据

java - 如何与 friend 分享推荐代码和 Play 商店应用程序

javascript - 如何使用phonegap监听屏幕触摸开始和触摸结束

Eclipse 中的 Android 项目不允许我访问 bin 文件夹

java - 调整 UI 默认值

android - 请帮助非常简单的 android 小部件按钮单击。变得非常沮丧。 :(

android - 推送错误 : master: master [rejected non-fast-forward]

java - Java 8 上的 Tomcat 8 是否支持为 Java 6 和 Tomcat 6 构建的应用程序?