即時編譯 

不同类型的即时编译实现

计算机技术中,即时编译(英語:Just-in-time compilation,缩写为JIT;又译及时编译[1]实时编译[2]),也称为动态翻译运行时编译[3],是一种执行计算机代码的方法,这种方法设计在程序执行过程中(在執行期)而不是在执行之前进行编译[4]通常,这包括源代码或更常见的字节码机器码的转换,然后直接执行。实现 JIT 编译器的系统通常会不断地分析正在执行的代码,并确定代码中可被即时编译加速的部分,在这些部分中,由编译或重新编译带来的性能提高将超过编译该代码的开销。

JIT编译是两种传统的机器代码翻译方法——提前编译英语ahead-of-time compilation(AOT)和直譯器——的结合,它结合了两者的优点和缺点。[4]大致来说,JIT编译,以解释器的开销以及编译和链接(解释之外)的开销,结合了编译代码的速度与解释的灵活性。JIT编译是動態編譯的一种形式,允许自适应优化英语adaptive optimization,比如动态重编译和特定于微架構的加速[nb 1][5]——因此,在理论上,JIT编译比静态编译能够产生更快的执行速度。解释和JIT编译特别适合于动态编程语言,因为运行时系统可以处理后期绑定英语Late binding的数据类型并实施安全保证。

  1. ^ 丁宇新, 梅嘉, & 程虎. (1999). 国产开放系统平台 Java 及时编译器的设计与实现 (Doctoral dissertation). http://www.cnki.com.cn/Article/CJFDTotal-JSJX199912010.htm页面存档备份,存于互联网档案馆
  2. ^ 微软语言门户术语搜索页面存档备份,存于互联网档案馆)中英语Just-in-time compilation到简体中文
  3. ^ Languages, Compilers, and Runtime Systems, University of Michigan, Computer Science and Engineering, [2018-03-15], (原始内容存档于2018-03-26) 
  4. ^ 4.0 4.1 Aycock 2003.
  5. ^ Does the JIT take advantage of my CPU?. David Notario's WebLog. [2018-12-03]. (原始内容存档于2018-12-04). 


引证错误:页面中存在标签,但没有找到相应的标签




取材自維基百科 - 中文時事百科