1.内存分区。 内存区域分为五块:方法区,虚拟机栈,堆,本地方法栈,程序计数器。 方法区:线程共享的内存区域。存储已被虚拟机加载的类信息,常量,静态变量,即时编译器编译的代码数据等。而并非存储的方法代码。 虚拟机栈:JAVA中描述JAVA方法执行的内存模型。每个方法创建的时候都会创建一个栈帧,栈帧用 ...
分类:
编程语言 时间:
2016-11-19 15:17:44
阅读次数:
218
虚拟机是如何执行方法中的字节码指令的。许多Java虚拟机的执行引擎在执行Java代码的时候都有解释执行(通过解释器执行)和编译执行(通过即时编译器产生本地代码执行)两种选择,在解释执行时,虚拟机执行引擎是如何工作的。 解释执行 不论是解释还是编译,也不论是物理机还是虚拟机,对于应用程序,机器都不可能 ...
分类:
其他好文 时间:
2016-11-13 09:35:39
阅读次数:
123
基本特性: 线程共享区域,存储被JVM加载的类信息、常量、静态变量、即时编译器编译的代码等 堆的逻辑部分,不限定方法去内的内存位置和编译代码的管理策略,不限定实现垃圾回收 容量可不定也可动态扩展,不要求物理连续 回收主要针对常量池的回收,和类型的卸载 HotSpot虚拟机方法区: 使用永久代实现方法 ...
分类:
其他好文 时间:
2016-10-22 17:41:00
阅读次数:
139
重点 应用程序可以选择一个适当的即时编译器来进行接近机器级的性能优化。 分层编译由五层编译构成。 分层编译提供了极好的启动性能,并指导编译的下一层编译器提供高性能优化。 提供即时编译相关诊断信息的JVM开关。 像内联化和向量化之类的优化进一步增强了性能。 OpenJDK HotSpot Java V ...
分类:
其他好文 时间:
2016-09-03 16:21:39
阅读次数:
148
即时编译器概述
编译器在编译过程中通常会考虑很多因素。比如:汇编指令的顺序。假设我们要将两个寄存器的值进行相加,执行这个操作一般只需要一个CPU周期;但是在相加之前需要将数据从内存读到寄存器中,这个操作是需要多个CPU周期的。编译器一般可以做到,先启动数据加载操作,然后执行其它指令,等数据加载完成后,再执行相加操作。由于解释器在解释执行的过程中,每次只能看到一行代码,所以很难生成上述这样的高...
分类:
编程语言 时间:
2016-07-13 16:10:18
阅读次数:
1346
1.Java语言的特点: 简单性、面向对象、可移植、多线程、动态、结构中立、分布式、高性能、健壮、安全 2.编译:.java 源文件名 .class 类名 3.虚拟机的工作流程:编译源文件-->编写解码文件-->类加载器-->字节码校验器-->解释器、即时编译器-->本地代码 4.jdk: jre: ...
分类:
编程语言 时间:
2016-05-19 01:20:15
阅读次数:
182
晚期(运行期)优化 1.为了提高热点代码的执行效率,在运行时,虚拟机将会把这些代码编译成与本地平台相关的机器码,并进行各种层次的优化,完成这个任务的编译器称为即时编译器(Just In Time,JIT编译器)。 2.Hotspot虚拟机内的即时编译器 (1)解释器与编译器 主流的商用虚拟机,如Ho ...
分类:
其他好文 时间:
2016-04-07 22:08:00
阅读次数:
227
1)给定java源代码
// 单例模式(分析volatile关键字是如何禁止指令重排序优化的)
public class Singleton {
private volatile static Singleton instance;
public static Singleton getInstance() {
if(instance == null) {
synchroniz...
分类:
系统相关 时间:
2016-04-04 15:00:09
阅读次数:
895
一、Java虚拟机的结构 Java栈: 栈深度:StackOverflowError 异常 内存:OutOfMemoryError 异常 方法区: 它用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据 二、常用配置参数 -Xms:最小值 -Xmx:最大值 -Xm
分类:
其他好文 时间:
2016-03-14 18:51:09
阅读次数:
219
这节我们总结一下JVM运行期的优化问题。 JVM运行期优化 即时编译器(JIT) 编译对象与触发条件 编译对象 触发条件 编译过程 编译优化技术 JVM运行期优化 Java程序在运行的期间,可能会有某个方法或者代码块的运行特别频繁时,就会把这些代码认定为“热点代码”。为了提高热点代码的执行效率,在运
分类:
其他好文 时间:
2016-02-28 13:54:31
阅读次数:
280