即時編譯
维基百科,自由的百科全书
即时编译(英语:Just-in-time compilation)[1],又译及时编译[2]、实时编译[3],动态编译的一种形式,是一种提高程序运行效率的方法。通常,程序有两种运行方式:静态编译与動態直譯。静态编译的程序在执行前全部被翻译为机器码,而直譯执行的则是一句一句边运行边翻译。
即时编译器则混合了这二者,一句一句编译源代码,但是会将翻译过的代码缓存起来以降低性能损耗。相对于静态编译代码,即时编译的代码可以处理延迟绑定并增强安全性。
即时编译器有两种类型,一是字节码翻译,二是动态编译翻译。
微软的.NET Framework[4][5],还有绝大多数的Java实现[6],都依赖即时翻译以提供高速的代码执行。Mozilla Firefox使用的Javascript引擎SpiderMonkey也用到了JIT的技術。Ruby的第三方实现Rubinius和Python的第三方实现PyPy也都通过JIT来明显改善了解释器的性能。
参考资料 [编辑]
- ^ “基于即时编译器辅助的并行垃圾收集器”、“ 即时编译器辅助的垃圾收集中的插桩算法研究”,中国科学技术大学
- ^ 国产开放系统平台Java及时编译器的设计与实现,中国科学院软件研究所
- ^ 微软术语表中英语Just-in-time compilation到简体中文
- ^ 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
- ^ 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
- ^ Kogent Solution Inc. Java 6 Programming Black Book, New Ed. Dreamtech Press. 2007. 5. ISBN 9788177227369.