javac 优化标志

我最近用C语言编写了很多代码,现在正在切换到Java。我目前正在实现一个大型数据结构,并且想知道当我调用Java编译器以提高性能时,是否可以打开任何优化标志,例如在gcc中。

我习惯于:

gcc -O3 -NDEBUG MyProgram.c

是否有类似的命令 ?javac

我正在使用JDK并运行Ubuntu 10.04。


答案 1

Java中的优化主要由JIT编译器在运行时完成。因此,试图指示它在编译时以某种方式优化是没有意义的(无论如何,当它只创建字节码时)。JIT几乎肯定会在现场做出更好的决策,了解确切的环境并观察代码特定部分的实际执行模式。

有一些特定的编译器选项会影响性能,但这些选项用于调整JVM(包括垃圾回收器),而不是优化代码本身。


答案 2

没有等效级别或任何级别,但您可以通过 访问特定的调整选项。这里有一个完整的列表。-O3-O-XX:

但是,这假设您正在使用Oracle提供的JVM,并且它可能会根据您的环境而有所不同(“使用JDK”并没有真正描述您正在使用的版本)


推荐