【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内置的一种 服务提供发现 ...
最新文章
- ospf的四种网络类型
- 阿里离职员工吐槽加班太疯狂,所有的高薪都是加班加出来的!被榨干到一丝精力都不剩!婚姻不保!...
- 干货丨关于机器学习那些你不知道的“民间智慧”
- [flask实践] 解决mysql数据库不支持中文的问题
- Linux守护进程简介
- vue中的浏览量_vue中前进刷新、后退缓存用户浏览数据和浏览位置的实践
- Python项目实践:天天向上的力量
- 打算升级到 Monterey?我们为你准备了一份 macOS 安全升级指南
- java虚拟机的数据_Java虚拟机运行时数据区域
- MessageQueue-JNI: Exception in MessageQueue callback: handleReceiveCallback
- 微信 语音识别_微信语音识别_微信语音识别api - 云+社区 - 腾讯云
- [附源码]java毕业设计逸尘房屋销售管理系统
- asp.net 中 使用ajax 和浏览器的关系
- 网工浓缩笔记以及考点(第四章 无线通信网)
- 报表工具不可或缺的数据填报功能
- mac 打字卡顿的解决方法
- 计算机组成原理 | 第八章《计算机的外围设备》、第九章《输入/输出系统》 学习笔记
- Scrapy爬取网页并保存到数据库中
- 解决方案:IDEA没有Java Enterprise选项的问题
- 华为发布鸿蒙系统有啥用,华为鸿蒙发布在即,能否成为第三大操作系统?
热门文章
- 人工智能基础-算法工程师为什么要懂线性代数?
- 工作上996,生活上669,并不是什么难事儿!
- 业界丨2018,人工智能革命走向风口浪尖
- 听说你用JavaScript写代码?本文是你的机器学习指南
- 深度学习和普通机器学习之间有何区别?
- 南洋理工75页最新「深度学习对话系统」大综述论文,最全面概述深度学习对话技术进展...
- 加大基础研究投入 给科技创新注入“强心剂”
- “万物就只是5万亿个参数”,AI模型GPT-3让人怀疑人生
- 前途无量的MEMS传感器
- 干货|六维力和力矩传感器的技术与应用