美文网首页
jvm基本结构

jvm基本结构

作者: IT小鲍 | 来源:发表于2017-06-07 22:24 被阅读0次

1. jvm运行数据区

1 PC寄存器

1.1 每个线程都有一个pc寄存器

1.2 在线程创建时创建

1.3 指向下一条指令

1.4 指向本地方法时 pc的值为undefined

2 方法区

2.1 保存装载类的形象

2.1.1 类型的常量池

2.1.2 字段、方法信息

2.1.3 方法字节码

3 java堆

3.1 应用系统的所有对象保存在java堆中【但是不是所有对象都会分配到java堆中,如对象逃逸会分配到TLBA中】

3.2 所有线程共享java堆

3.3 对于分代GC,堆也是分代的

3.4 应用系统的所有对象保存在java堆中

4 java栈

4.1 线程私有

4.2 栈由一系列帧组成

4.3 帧保存一个方法的局部变量、操作数栈、常量池指针

4.4 每次调用方法创建一个帧,并压栈

5 栈调用过程演示

6 栈上分配对象(也可以叫做对象逃逸)

//添加jvm 参数-server -Xmx10m -Xms10M -XX:+DoEscapeAnalysis 开启对象逃逸

public class T {

public static void main(String[] args) {

Long l = System.currentTimeMillis();

for (int i = 0; i < 1000000000; i++) {

createObject();

}

System.out.println(System.currentTimeMillis() - l);

//开启 -XX:+DoEscapeAnalysis 17毫秒

//关闭 -XX:-DoEscapeAnalysis 10689毫秒

//可以看出来对象逃逸对性能的优化是非常巨大的

}

/**

* 如果开启-XX:+DoEscapeAnalysis 局部变量是分配到栈上

* 该变量随着方法的结束而销毁这样就大大的减少了GC的压

* 力,因为GC会回收堆上的对象

*/

static void createObject() {

byte[] b = new byte[2];

b[0] = 1;

}

}

相关文章

  • 深入JVM内核原理-2.JVM运行机制

    1.JVM启动流程 JVM启动流程.png 2.JVM基本结构 JVM基本结构.png PC寄存器每个线程拥有一个...

  • JVM基本结构

    PC寄存器 每一个线程拥有一个PC寄存器 在线程创建时创建 指向下一条指令的地址 执行本地方法时,PC的值为und...

  • jvm基本结构

  • JVM基本结构

    JVM基本结构 PC寄存器 线程私有 字节码指令的行号指示器,指向下调要执行的指令地址 不会发生OOM 堆 和程序...

  • jvm基本结构

    1. jvm运行数据区 1 PC寄存器 1.1 每个线程都有一个pc寄存器 1.2 在线程创建时创建 1.3 指向...

  • jvm基本结构

    1. jvm运行数据区 1 PC寄存器 2 方法区 3 java堆 4 java栈 5 栈调用过程演示image....

  • JVM基本结构

    一直对JVM的基本结构很困惑,今天抽空整理下。 Java Virtual Machine的简称即Java虚拟机 虚...

  • JVM——基本结构

    前言 只有了解了JVM的组成部分,才能算的上真正的了解了JVM,JVM的组成5个部分:堆、虚拟机栈、本地方法栈、程...

  • JVM结构、GC工作机制

    JVM结构、内存分配、垃圾回收算法、垃圾收集器。 一、JVM结构 JVM的基本结构一般如下图所示: 从左图可知,J...

  • JVM底层之ClassLoader源码解析及自定义ClassLo

    1.JVM运行流程 JVM运行流程如下图所示: 2.JVM基本结构 JVM基本机构包括:类加载器,执行引擎,运行时...

网友评论

      本文标题:jvm基本结构

      本文链接:https://www.haomeiwen.com/subject/fvnafxtx.html