博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
什么是JIT?
阅读量:7073 次
发布时间:2019-06-28

本文共 573 字,大约阅读时间需要 1 分钟。

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

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

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

JIT 编译过程

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

       我们了解了JIT的工作原理及过程,同样也发现了个问题,由于JIT对每条字节码都进行编译,造成了编译过程负担过重。为了避免这种情况,当前的JIT只对经常执行的字节码进行编译,如循环等。

      需要说明的是,JIT并不总是奏效,不能期望JIT一定能够加速你代码执行的速度,更糟糕的是她有可能降低代码的执行速度。这取决于你的代码结构,当然很多情况下我们还是能够如愿以偿的。

转载于:https://www.cnblogs.com/baxianhua/p/9396815.html

你可能感兴趣的文章
npm ERR! code EINTEGRITY 解决方法
查看>>
深受程序员鄙视的外行语录!
查看>>
使用runtime Associate方法关联的对象,需要在主对象dealloc的时候释放么?
查看>>
不健康的IT狗,送给你们一句话
查看>>
进程列表中多个JAVA进程的区分识别
查看>>
IPHONE实景导航开发总结
查看>>
Git常用操作命令
查看>>
正则表达式-断言
查看>>
用git合并分支时,如何保持某些文件不被合并
查看>>
局部代码块、构造代码块、静态代码块
查看>>
聚类分析 ---- K-Means算法
查看>>
C語言最新標準-C11 「轉」
查看>>
SaltStack数据系统-Grains详解
查看>>
课程第三天内容《基础交换 三 》
查看>>
Spring(八):缓存
查看>>
全局函数指针作为模板参数
查看>>
URL access forbidden for unknown reason svn: acces
查看>>
kafka基本命令启动和测试
查看>>
你真的已经搞懂JavaScript了吗?
查看>>
Merge into 详细介绍
查看>>