即時編譯

维基百科,自由的百科全书
跳转至: 导航搜索

即时编译英语Just-in-time compilation[1],又译及时编译[2]实时编译[3]动态编译的一种形式,是一种提高程序运行效率的方法。通常,程序有两种运行方式:静态编译与動態直譯。静态编译的程序在执行前全部被翻译为机器码,而直譯执行的则是一句一句边运行边翻译。

即时编译器则混合了这二者,一句一句编译源代码,但是会将翻译过的代码缓存起来以降低性能损耗。相对于静态编译代码,即时编译的代码可以处理延迟绑定并增强安全性。

即时编译器有两种类型,一是字节码翻译,二是动态编译翻译。

微软的.NET Framework[4][5],还有绝大多数的Java实现[6],都依赖即时翻译以提供高速的代码执行。Mozilla Firefox使用的Javascript引擎SpiderMonkey也用到了JIT的技術。Ruby的第三方实现RubiniusPython的第三方实现PyPy也都通过JIT来明显改善了解释器的性能。

参考资料[编辑]

  1. ^ “基于即时编译器辅助的并行垃圾收集器”、“ 即时编译器辅助的垃圾收集中的插桩算法研究”,中国科学技术大学
  2. ^ 国产开放系统平台Java及时编译器的设计与实现,中国科学院软件研究所
  3. ^ 微软术语表中英语Just-in-time compilation到简体中文
  4. ^ Meijer, Erik, & Gough, John. (n.d.). Technical Overview of the Common Language Runtime.Microsoft research. Retrieved April 10, 2011, from http://getyourmobiles.com/en-us/um/people/emeijer/papers/clr.pdf
  5. ^ Fay, D.; , "An architecture for distributed applications on the Internet: overview of Microsoft's .NET platform," Parallel and Distributed Processing Symposium, 2003. Proceedings. International , vol., no., pp. 7 pp., 22-26 April 2003
  6. ^ Kogent Solution Inc. Java 6 Programming Black Book, New Ed. Dreamtech Press. 2007. 5. ISBN 9788177227369.