gpt4 book ai didi

java - 为什么使用 JIT 与编译为机器代码相比,Java 更快?

转载 作者:IT老高 更新时间:2023-10-28 20:32:56 24 4
gpt4 key购买 nike

我听说 Java 必须使用 JIT 才能快。与解释相比,这非常有意义,但是为什么有人不能制作一个能够生成快速 Java 代码的提前编译器呢?我知道 gcj,但我认为它的输出通常不会比 Hotspot 快。

语言中是否存在使这变得困难的因素?我认为归结为以下几点:

  • 反射(reflection)
  • 类加载

我错过了什么?如果我避免这些功能,是否可以将 Java 代码编译为原生机器代码并完成?

最佳答案

JIT 编译器可以更快,因为机器代码是在它也将在其上执行的确切机器上生成的。这意味着 JIT 拥有可用于发出优化代码的最佳信息。

如果您将字节码预编译为机器码,编译器无法针对目标机器进行优化,只能针对构建机器进行优化。

关于java - 为什么使用 JIT 与编译为机器代码相比,Java 更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1878696/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com