我应该使用javac -O选项进行优化吗?

 手机用户美佛_885 发布于 2023-02-06 15:17

javac 有一个有趣的-O选择:

通过内联静态,最终和私有方法来优化编译代码.请注意,您的课程可能会变得更大.

这个选项似乎不受欢迎(隐藏?),我今天刚刚在CodeCup 2014页面上发现它.

-O中未提及的官方文件,也不在man javac......奇怪.

在对类似问题的接受答案中,我们可以读到:

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

我的问题是:

我应该总是使用该-O选项吗?换句话说,代码总是运行得更快-O或根本没有差别?

也许班级规模会增加太多,整体表现会下降?或者JVM无论如何都会进行内联,所以最好留下它?

类似的故事是与gcc -O3国旗.

3 个回答
  • 根据第553行的源代码中的注释,这是一个无操作.

    当JIT编译器效率不高或根本没有JIT编译器时,它可能很有用.

    2023-02-06 15:18 回答
  • 我从一开始就一直在使用Java.我已经构建了许多系统,其中一些是高性能的,其中一些是极端的性能,而且我从来没有发现过这个标志有用.我认为它可能曾经有过使用,但我从来不需要关心.

    2023-02-06 15:21 回答
  • 我认为它不会像你想的那样进行任何优化:

    -O通过内联静态,最终和私有方法来优化编译代码.请注意,您的班级可能会受到更大的注射.

    请查看以下问题:

    Java编译器优化

    Java代码编译器优化

    更新

    您不会在任何Oracle文档中找到它,因为它实际上什么都不做(no-op).此外,您的链接是一个非常古老的文档:

    在你的链接中找到两个目录- 这是jdk 1.1.3的文档.这是13 - 14岁!我们现在正在Jdk 7上,并急切地等待Jdk 8.

    2023-02-06 15:21 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有