1、运行期
虚拟机会把“热点代码”编译成与本地平台相关的机器码,并进行各种层次的优化,完成这个任务的编译器称为即时编译器(Just In Time Compiler,JIT)。
所谓“热点代码”,是指:(1)被多次调用的方法;(2)被多次执行的循环体(依然会以整个方法为编译对象)。
由于HotSpot虚拟机使用基于计数器的热点探测方法,存在热度衰减(Counter Decay)和半衰周期。只要系统运行时间足够长,绝大部分方法都会被编译成本地代码。
2、解释器与编译器
HotSpot虚拟机同时包含解释器和编译器。事实上,HotSpot内置了两个即时编译器:Client Compiler和Server Compiler。后者几乎能达到GNU C++编译器使用-O2参数时人优化强度。
3、常用的优化手段
(1)语言无关的经典优化技术之一:公共子表达式消除;
(2)语言相关的经典优化技术之一:数组范围检查消除;
(3)最重要的优化技术之一:方法内联;
(4)最前沿的优化技术之一:逃逸分析。
当一个对象在方法里面被定义后,它可能被外部方法所引用。例如作为调用参数传递到其他方法中,这种行为称为方法逃逸;甚至还有可能被外部线程访问到,譬如赋值给类变量或可以在其他线程中访问的实例变量,这种行为称为线程逃逸。(P310)
相关推荐
java 虚拟机
深入理解Java虚拟机学习笔记借鉴.pdf
深入理解Java虚拟机笔记(带目录).docx
作者以易于理解的方式深入揭示了java虚拟机的内部工作原理,深入理解这些内容,将对读者更快速地编写更高效的程序大有裨益! 本书共分20章,第1-4章解释了java虚拟机的体系结构,包括java栈、堆、方法区、执行...
深入理解java虚拟机视频教程,jvm原理,java虚拟机,jvm性能调优,内存模型,gc工作原理,内存分配,类的加载等等视频教程
诸葛_BAT面试之深入理解Java虚拟机_9
自己看《深入理解Java虚拟机》(第二版)所做的一些笔记。因为个人水平有限,能够理解的也只有前面几章的内容,后面的内容觉得看了也不是很理解,就没有记在里面。希望能对大家有所帮助,也希望能和大家一起进步。
深入理解JAVA虚拟机.xmind
前言Java是目前用户最多、使用范围最广的软件开发技术之一。Java的技术体系主要由支撑Java程序运行的虚拟机、提供各开发领域接口支持的Java API、Ja
深入理解Java虚拟机(第二版)
包括jvm 的内存模型 对象的创建过程 垃圾回收算法 垃圾回收器 内存分配和回收策略
虚拟机是一种抽象化的计算机,通过在实际的计算机上仿真模拟各种...Java虚拟机屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。
了解jvm的pdf,高清pdf,希望大家下载
30+个视频+深入理解Java虚拟机(jvm优化+内存模型+虚拟机原理)
深入Java虚拟机——本地方法栈.pdf
NULL 博文链接:https://zhanjia.iteye.com/blog/1842733
深入java虚拟机笔记http://blog.csdn.net/yangzl2008/article/details/8074667
这是自己读《深入理解Java虚拟机》时候用XMind建立的思维导图,目的是为了能够帮助自己整理、梳理相关的知识以及方便自己日后的回顾,帮助自己建立起关于JVM的知识体系,里边也有一些对相关内容的补充,通过备注的...
深入JAVA虚拟机 第二版,比较老的一本书,不那么完美但不影响观看,稍微有点倾斜
不废话Java 虚拟机入门黄金搭档。JVM规范+深入JAVA虚拟机(附带源码)。