我最近开始阅读有关 Java 编译器的文章。到目前为止,我的理解是,这种优化来自于诸如疲劳编译或代码分析之类的技术。现在我读到 Java 9 和 Java 10 (Windows) 提供了 AOT 编译选项。现在我想知道:什么用例可以证明使用 AOT 编译是合理的?
为了获得更好的启动性能,比如简单的桌面应用程序,用户等待它加载会很烦人,然后在 JIT 启动之前它仍然会很慢。所以你可以使用 AOT 已经提供优化的代码 - 它可能不如 JIT,但在启动时会快得多。
还有一些应用程序只使用了几秒钟或更短的时间 - JIT 永远不会有机会启动。就像简单的命令行应用程序一样,它只发送单个请求并关闭。每个函数可能只会执行一次 - 所以根本没有理由使用 JIT。
它也可能有助于减少二进制大小或允许创建非常简单和小的独立二进制文件。内存使用情况相同 - 因为 JIT 需要一些内存才能工作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句