我最近开始阅读有关Java编译器的文章。到目前为止,我的理解是,优化来自诸如疲倦的编译或代码分析之类的技术。现在,我读到Java 9和Java 10(Windows)分别提供了AOT编译的选项。现在我想知道:哪种用例证明使用AOT编译是合理的?
答案 0 :(得分:1)
要获得更好的启动性能(如简单的桌面应用程序),用户等待它加载会很烦人,然后在启动JIT之前仍然非常缓慢。因此,您可以使用AOT来提供优化的代码-它可能不如JIT,但启动时会更快。
某些应用程序仅使用几秒钟甚至更少的时间-JIT将永远没有机会加入。就像简单的命令行应用程序一样,它仅发送单个请求并关闭。每个函数可能只会执行一次-因此根本没有理由使用JIT。
这也可能有助于减小二进制文件的大小,或者允许创建非常简单且很小的独立二进制文件。内存使用情况相同-因为JIT需要一些内存才能工作。