根据我的理解,如果单独的Java解释器逐行开始执行字节码,性能将会很慢,因此JIT出现在代码优化的图片中,以便更快地执行代码。
JIT编译器优化代码,java解释器逐行转换优化代码。由于JIT仅在运行时运行,因此我们不会获得任何二进制输出。一旦解释器翻译,就会生成二进制代码。
---现在我的问题是,JIT和JAVA解释器是否一起工作? 要么, jit编译器首先工作,然后java解释器开始工作?
请确认一下吗?
答案 0 :(得分:0)
当Java运行时启动时,它将使用解释器运行字节码。随着方法被重复调用,它们将被编译为更快的版本。如果他们被召唤得更多,他们的编译速度会更快。
答案 1 :(得分:0)
当java运行程序时,它会解释字节码并运行它。如果它检测到特定的代码位经常运行,则JIT编译器将启动并且字节码将被编译为特定于平台的代码,用于运行代码的任何平台(即机器代码)。
对于由JIT编译器编译的代码,编译的代码直接使用而不是字节码,因此不需要解释(这就是为什么它更快)。
在执行JIT编译时,一次性性能受到了影响,因此java只会为经常运行的代码执行此操作。