我对编译和解释以及 JIT 的工作方式有些困惑。我知道源代码或 Java 程序被编译为 Java 字节码,然后加载到 JVM 上,然后将字节码解释为本机机器代码或使用 JIT。
我正在阅读解释器文档并了解到解释器会分析每个请求的每个语句,然后转换为本机代码导致性能降低。
并且还读到 JIT 进行动态翻译并将本机代码存储在缓存中,然后用于后续请求。
我想了解的是 JIT 究竟是如何工作的?每当向应用程序发出第一个请求时,它就会将该部分字节码转换为机器码,存储在缓存中并使用它。这是这个过程吗?如果是这样,那么每个第一个请求是否总是较慢,因为它需要将字节码转换为机器码?
请详细说明这一点。