[英]What is the use of JVM if JIT is performing bytecode conversion to machine instructions
JIT只是JVM的一部分 。 其他部分包括字节码解释器,类加载验证和链接机制,以及反射,I / O等内容的本机代码支持。
从这个意义上说,JIT并没有使JVM运行得更快。 相反,它使Java代码运行得更快......而不是JVM只是解释它。
实际上,JVM 确实开始解释字节码。 经过一段时间后,JVM使用其JIT编译器将大量使用的方法编译为本机代码,使用在解释时收集的统计信息来调整手头问题的代码。
顺便说一下,你引用的这部分文字是笨拙的,技术上不准确:
实时(JIT)编译器是运行时解释器的一个特性... (上下文)
实际上,JIT不是解释器的一个特性。 相反,JIT是与解释器一起工作的JVM的功能。
要明确:
JVM执行以下所有操作:
它保留在操作系统的顶层,并提供编译的java程序和操作系统之间的抽象。 这样,java编译的程序就不必担心它必须工作的平台。 Java程序将代码编译为JVM可以理解和执行的字节码。
JIT
当JVM编译类文件时,它不会完成完整的类文件; 它根据需要仅编译其中的一部分。 这避免了对完整源代码的大量解析。 这种类型的编译称为JIT或Just-In-Time编译。 JVM是依赖于平台(OS)的代码生成JIT是面向平台的,生成本机字节代码,因此它比JVM更快:)
Java虚拟机(JVM)提供了运行Java程序的整个环境。 它与操作系统集成,加载类并运行程序。 Just-In-Time编译器(JIT)只是一小部分可以被禁用(-Xint),但是在启用时,它提供了有用的性能改进。 已经存在不包含JIT的JVM的实现,以及通过将Java预编译为与传统语言(例如C或C ++)相同的机器代码而实现的实现。
它及时编译它以便JVM进行优化。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.