JIT和口译员

Anonim

JIT与口译员

Just In Time编译(也称为动态转换或JIT)是一种用于计算以提高计算机程序的运行时性能质量的技术。它是在运行时环境中找到的两个想法的融合:字节码编译和动态编译(这是一些编程语言实现用于在系统执行操作时获得性能的过程)。

解释器最准确地描述了通过计算机程序执行动作。解释器实际执行的操作类型有一些变化:它直接执行程序的源代码;它将源代码转换为一个有效的中间表示的表示,然后执行所述代码;它执行由编译器存储和创建的预编译代码,该编译器是解释器系统的一部分。

JIT能够结合在解释和静态(即提前说)编译中发现的优点。作为一个解释器,JIT能够通过缓存已经翻译的代码块的结果来提高性能 - 与每次发生时只需重新评估代码中的每一行或操作数(如解释语言)相比。就像开发时的静态编译代码一样,如果发现这是最有利的行动计划,JIT能够重新编译代码。此外,与静态编译一样,JIT能够实施安全保证。

就像编译器一样,口译员也有能力翻译代码。两者都是实现编程语言的主要方法;但是,“编译器”或“解释器”的类别并不明显(因为它们作为代码转换器的双重角色)。使用解释器最明显的缺点是,一旦解释了代码,程序将不可避免地比仅仅编译代码时运行得慢;然而,解释编码所花费的时间远远少于编译和运行编码所花费的时间(特别是在原型设计和测试代码时)。

一般来说,JIT提供了比解释器更好的性能,并且在许多情况下,提供了比静态编译器更好的性能。然而,它优于JIT的优势并不妨碍它具有一些主要缺点:最初执行应用程序时会有轻微的延迟(需要花时间加载和编译字节码的副作用)。它最终会产生更好的编码;然而,这样做的固有的初始延迟将随着编码质量而增加。

摘要:

1. JIT是一种用于在运行时环境中提高运行时性能质量的技术;解释器通过计算机程序定义动作的执行。

2. JIT结合了解释和静态编译的优点;解释器可以像编译器一样翻译代码,但会损害程序的速度。