【Todo】Java的JIT机制
先是参考了这篇说的不怎么详细的文章《Java的JIT机制》(Link)
JIT是just in time,即时编译技术。使用该技术,能够加速java程序的执行速度。
通常javac将程序源代码编译,转换成java字节码,JVM通过解释字节码将其翻译成对应的机器指令,逐条读入,逐条解释翻译。很显然,经过解释执行,其执行速度必然会比可执行的二进制字节码程序慢。
为了提高执行速度,引入了JIT技术。在运行时JIT会把翻译过的机器码保存起来,已备下次使用,因此从理论上来说,采用该JIT技术可以,可以接近以前纯编译技术。
当JIT编译启用时(默认是启用的),JVM读入.class文件解释后,将其发给JIT编译器。JIT编译器将字节码编译成本机机器代码.
同样也发现了个问题,由于JIT对每条字节码都进行编译,造成了编译过程负担过重。为了避免这种情况,当前的JIT只对经常执行的字节码进行编译,如循环等。 需要说明的是,JIT并不总是奏效,不能期望JIT一定能够加速你代码执行的速度,更糟糕的是她有可能降低代码的执行速度。这取决于你的代码结构,当然很多情况下我们还是能够如愿以偿的。
另有这两篇文章讲的比较深入,可以看一下:
http://blog.csdn.net/ns_code/article/details/18009455
http://www.ibm.com/developerworks/cn/java/j-lo-just-in-time/
【Todo】Java的JIT机制相关推荐
- Jvm 系列(十):Java 即时编译器JIT机制以及编译优化
在部分的商用虚拟机中,Java 程序最初是通过解释器( Interpreter )进行解释执行的,当虚拟机发现某个方法或代码块的运行特别频繁的时候,就会把这些代码认定为"热点代码" ...
- 深入理解java虚拟机(十三) Java 即时编译器JIT机制以及编译优化
在部分的商用虚拟机中,Java 程序最初是通过解释器( Interpreter )进行解释执行的,当虚拟机发现某个方法或代码块的运行特别频繁的时候,就会把这些代码认定为 热点代码 .为了提高热点代码的 ...
- 关于Java的JIT(即时编译器)知识整理
文章目录 前言 一.JIT(即时编译器) 1.1 解释执行和编译执行的区别 1.2 Java代码编译过程 1.3 JIT是什么 二.HotSpot是什么 2.1 说JIT比解释快,其实说的是" ...
- JAVA垃圾回收机制-史上最容易理解看这一篇就够了
目录 1. JDK构成 2. JAVA执行过程 2.1 第一步:编译阶段 2.2 第二步:运行阶段 3. JAVA内存管理 3.1 JAVA的内存模型 3.2 JVM1.7和1.8区别 3.3 JAV ...
- java的Serialization 机制
基本使用方法 Serialization是指把类或者基本的数据类型持久化(persistence)到数据流(Stream)中,包括文件.字节流.网络数据流. ...
- 《Java程序设计》实验报告——Java的多线程机制
浙江理工大学 <Java程序设计> 实验报告 20 19-20 20学年第 1学期 学 院 信息学院 班 级 计算机科学与技术18(3) 姓 名 申屠志刚 学 号 2 ...
- java xml 反射_Java 读取XML文件以及Java 的反射机制实现
Java 读取XML文件以及Java 的反射机制实现 代码部分 import java.io.File; import javax.xml.parsers.DocumentBuilder; impor ...
- 深入了解Java的SPI机制
导语 SPI的全名叫做Service Provider Interface,在java.util.ServiceLoader的文档中有详细的介绍,下面就来通过简单的例子实现SPI深入了解 我们 ...
- 【java】SPI机制详解
1.概述 以前的文章:[SPI]java基础之SPI框架实现 转载:Java常用机制 - SPI机制详解 PI(Service Provider Interface),是JDK内置的一种 服务提供发现 ...
最新文章
- 使用 trait 时报PHP Parse error: syntax error, unexpected 'use' (T_USE) 这个错误
- Android:Socket客户端开发,Android 的Socket客户端优化,Android非UI线程修改控件程序崩溃的问题
- KIS科目初始数据录入
- js获取服务器响应头信息,请问,js中请求头信息和返回头信息的方法
- ATL的GUI程序设计(2)
- 瞬间之美:Web 界面设计如何让用户心动
- 【Python】ModuleNotFoundError: No module named 'pandas.io.data'
- python画散点图-从零开始学Python【15】--matplotlib(散点图)
- [转载] 用pandas或numpy处理数据中的空值(np.isnan()/pd.isnull())
- 由于项目需要 接触使用特别好 亲测使用 GoEasy小程序即时通讯源码是一个基于GoEasy提供的websocket通讯服务,实现的小程序即时通讯,
- centos 删除服务器文件夹,centos彻底删除文件夹、文件命令
- iReport报表Detail设置自适应高度
- 2012年秋季,斯皮维大厅音乐会的亮点
- 已知华氏温度f c语言,编程题:已知两种温度的换算公式C=(5/9)(F-32),试编写一个程序输入华氏度F,输出摄氏度。...
- Gsensor的驱动流程 -- 基于IIC
- Java 同步监视器中的 wait() 和 notify() 方法的具体实现
- C++华为+阿里+鹅厂面经大盘点-如果换做你能成功吗?
- Chrome浏览器更新
- 售前和产品经理有何区别?
- 摄影教室:数码摄影区域曝光法实用教程