我应该使用javac -O选项进行优化吗?
2022-09-01 14:08:48
javac
有一个有趣的选项:-O
通过内联静态、最终和私有方法优化已编译的代码。请注意,您的课程可能会变得更大。
这个选项似乎不受欢迎(隐藏?),我今天刚刚在CodeCup 2014页面上发现了它。
-O
在官方文档中也没有提到,也没有在javac
中提到...奇怪。
在类似问题的可接受答案中,我们可以读到:
Java中的优化主要由JIT编译器在运行时完成。因此,试图指示它在编译时以某种方式优化是没有意义的(无论如何,当它只创建字节码时)。JIT几乎肯定会在现场做出更好的决策,了解确切的环境并观察代码特定部分的实际执行模式。
我的问题是:
我是否应始终使用 -O
选项?换句话说,代码总是运行得更快,还是根本没有区别?-O
也许班级规模可以增加很多,以至于整体表现会下降?或者JVM无论如何都会做内联,所以最好把它留给那个?
类似的故事也发生在旗帜上。gcc -O3