JIT学习笔记

【转自:http://www.ibm.com/developerworks/cn/java/j-lo-just-in-time/】

JIT编译器在JVM中的运作原理:

JIT简介

JIT是just in time的缩写,也就是即时编译编译器。使用即时编译器技术,能够加速Java程序的执行速度。下面,就对该编译器技术做个简单的讲解。

首 先,我们大家都知道,通常通过javac将程序源代码编译,转换成java字节码,JVM通过解释字节码将其翻译成对应的机器指令,逐条读入,逐条解释翻译。很显然,经过解释执行,其执行速度必然会比可执行的二进制字节码程序慢很多。为了提高执行速度,引入了JIT技术。

在运行时JIT会把翻译过的机器码保存起来,以备下次使用,因此从理论上来说,采用该JIT技术可以接近以前纯编译技术。下面我们看看,JIT的工作过程。

JIT编译过程

当JIT编译启用时(默认是启用的),JVM读入.class文件解释后,将其发给JIT编译器。JIT编译器将字节码编译成本机机器代码,下图展示了该过程。

图1. JIT工作原理图


对于Java代码,刚开始都是被编译器编译成字节码文件,然后字节码文件会被交由JVM解释执行,所以可以说Java本身是一种半编译半解释执行的语言。采用了JIT compile技术,将运行频率很高的字节码直接编译为机器指令执行以提高性能,所以当字节码被JIT编译为机器码的时候,要说它是编译执行的也可以。也就是说,运行时,部分代码可能由JIT翻译为目标机器指令(以method为翻译单位,还会保存起来,第二次执行就不用翻译了)直接执行。

参考链接:

1.http://www.ibm.com/developerworks/cn/java/j-lo-just-in-time/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 这篇文章是我之前翻阅了不少的书籍以及从网络上收集的一些资料的整理,因此不免有一些不准确的地方,同时不同JDK版本的...
    高广超阅读 16,061评论 3 83
  • JVM、Java编译器和Java解释器 java解释器就是把在java虚拟机上运行的目标代码(字节码)解释成为具体...
    光剑书架上的书阅读 8,926评论 1 15
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,869评论 11 349
  • 觉察日记+4/17+张妍 +自保9 我别无他求,但求你接纳我。 这是多么痛的领悟,一切的无价值感,我没有要求,最低...
    尚灵心阅读 652评论 0 0
  • 一直觉得自己心境沉重了很多,没有了“少年不知愁滋味”的那份放松,可能因为年龄,可能因为心情,因为孩子们,因为父母们...
    刘佳画室阅读 411评论 6 7

友情链接更多精彩内容