美文网首页
JIT学习笔记

JIT学习笔记

作者: LaxChan | 来源:发表于2016-12-13 23:25 被阅读0次

【转自: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/

相关文章

  • JIT学习笔记

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

  • Java学习笔记:JIT

    背景 JIT是Just In Time compiler的简称,是JVM的重要一部分。说到JIT就不得不提Java...

  • 第八周-前端性能优化(二)

    JIT(Just In Time) • A crash course in just-in-time (JIT) ...

  • Flutter中的热更新

    首先来了解一下 JIT & AOT JIT & AOT JIT全称是Just In Time,代码可以在程序执行时...

  • [翻译]简单有趣的JIT编译器

    原文:Hello, JIT World: The Joy of Simple JITs标签(空格分隔):jit 编...

  • 什么是JIT?怎么优化?

    什么是JIT JIT 是 just in time 的缩写, 也就是即时编译编译器。 在运行时 JIT 会把翻译过...

  • JIT和AOT

    前端编译、JIT、AOT简单解释JIT详细解释编译技术探讨 JVM中涉及JIT编译的参数大方法执行效率低的原因--...

  • jit

    jjjjjjjjj

  • JIT

    1、选择编译器的类型 (1)-server 编译慢,速度快(2)-client 编译快,速度慢点(3)-X...

  • Dart 基础

    JIT 与 AOT Dart 是少数同时支持 JIT(Just In Time,即时编译)和 AOT(Ahead ...

网友评论

      本文标题:JIT学习笔记

      本文链接:https://www.haomeiwen.com/subject/nrabmttx.html