为什么要在 Java 中使用 AOT 编译?

JP13

我最近开始阅读有关 Java 编译器的文章。到目前为止,我的理解是,这种优化来自于诸如疲劳编译或代码分析之类的技术。现在我读到 Java 9 和 Java 10 (Windows) 提供了 AOT 编译选项。现在我想知道:什么用例可以证明使用 AOT 编译是合理的?

进入决赛

为了获得更好的启动性能,比如简单的桌面应用程序,用户等待它加载会很烦人,然后在 JIT 启动之前它仍然会很慢。所以你可以使用 AOT 已经提供优化的代码 - 它可能不如 JIT,但在启动时会快得多。

还有一些应用程序只使用了几秒钟或更短的时间 - JIT 永远不会有机会启动。就像简单的命令行应用程序一样,它只发送单个请求并关闭。每个函数可能只会执行一次 - 所以根本没有理由使用 JIT。

它也可能有助于减少二进制大小或允许创建非常简单和小的独立二进制文件。内存使用情况相同 - 因为 JIT 需要一些内存才能工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在进行AOT编译的Xamarin项目中使用代码混淆有什么优势

来自分类Dev

为什么要在Java卡程序中使用“ setSeed()”?

来自分类Dev

为什么要在Java中使用`transient`关键字?

来自分类Dev

为什么要在Java中使用特定类型的列表

来自分类Dev

为什么要在Java 7下编译而不在Java 8下编译?

来自分类Dev

什么时候/为什么要在Java中使用多线程?

来自分类Dev

为什么要在Java中使用BitSet而不是布尔数组(在Java中)?

来自分类Dev

我们在哪里使用 BitSet,为什么要在 Java 中使用它?

来自分类Dev

为什么需要在 Java 的 while 循环中使用“break”和“continue”语句?

来自分类Dev

为什么在实际实现中必须再次键入每个方法时,为什么要在Java中使用接口?

来自分类Dev

AOT(Angular)中预编译是什么意思

来自分类Dev

为什么要在Java的ArrayBlockingQueue实现中在offer(E e)中使用lock()但在put(E e)中使用lockInterruptible()

来自分类Dev

为什么我的Maven使用Java 1.3编译项目

来自分类Dev

为什么要在golang中使用组合?

来自分类Dev

为什么要在MVC中使用LabelFor?

来自分类Dev

为什么要在结构中使用malloc?

来自分类Dev

为什么要在Flux中使用“动作”?

来自分类Dev

为什么要在FRP中使用行为

来自分类Dev

为什么要在laravel中使用npm?

来自分类Dev

为什么要在函数中使用参数?

来自分类Dev

为什么要在延迟中使用setTimeout

来自分类Dev

为什么要在结构中使用malloc?

来自分类Dev

为什么要在ListView中使用DataTemplate?

来自分类Dev

为什么 Red Hat 提供使用不同 Java 编译器版本编译的构建?

来自分类Dev

摇篮5的Java 11编译错误:为什么摇篮认为我使用Java 10?

来自分类Dev

Java的新手-为什么不编译?

来自分类Dev

为什么我的Java代码无法编译

来自分类Dev

Java的新手-为什么不编译?

来自分类Dev

为什么编译的Java不兼容转发

Related 相关文章

  1. 1

    在进行AOT编译的Xamarin项目中使用代码混淆有什么优势

  2. 2

    为什么要在Java卡程序中使用“ setSeed()”?

  3. 3

    为什么要在Java中使用`transient`关键字?

  4. 4

    为什么要在Java中使用特定类型的列表

  5. 5

    为什么要在Java 7下编译而不在Java 8下编译?

  6. 6

    什么时候/为什么要在Java中使用多线程?

  7. 7

    为什么要在Java中使用BitSet而不是布尔数组(在Java中)?

  8. 8

    我们在哪里使用 BitSet,为什么要在 Java 中使用它?

  9. 9

    为什么需要在 Java 的 while 循环中使用“break”和“continue”语句?

  10. 10

    为什么在实际实现中必须再次键入每个方法时,为什么要在Java中使用接口?

  11. 11

    AOT(Angular)中预编译是什么意思

  12. 12

    为什么要在Java的ArrayBlockingQueue实现中在offer(E e)中使用lock()但在put(E e)中使用lockInterruptible()

  13. 13

    为什么我的Maven使用Java 1.3编译项目

  14. 14

    为什么要在golang中使用组合?

  15. 15

    为什么要在MVC中使用LabelFor?

  16. 16

    为什么要在结构中使用malloc?

  17. 17

    为什么要在Flux中使用“动作”?

  18. 18

    为什么要在FRP中使用行为

  19. 19

    为什么要在laravel中使用npm?

  20. 20

    为什么要在函数中使用参数?

  21. 21

    为什么要在延迟中使用setTimeout

  22. 22

    为什么要在结构中使用malloc?

  23. 23

    为什么要在ListView中使用DataTemplate?

  24. 24

    为什么 Red Hat 提供使用不同 Java 编译器版本编译的构建?

  25. 25

    摇篮5的Java 11编译错误:为什么摇篮认为我使用Java 10?

  26. 26

    Java的新手-为什么不编译?

  27. 27

    为什么我的Java代码无法编译

  28. 28

    Java的新手-为什么不编译?

  29. 29

    为什么编译的Java不兼容转发

热门标签

归档