JVM架构体系与GC命令都有哪些

发布时间:2021-10-23 17:23:24 作者:柒染
来源:亿速云 阅读:128

这篇文章将为大家详细讲解有关JVM架构体系与GC命令都有哪些,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

JVM运行时数据区

JVM架构体系与GC命令都有哪些

Overview

Java虚拟机Java virtual machine(JVM)  是物理机器的软件实现。java编译器javac将源码文件.java编译成字节码文件.class,然后这个字节码文件.class被放到JVM中,装载并执行字节码文件.class。JVM架构图如下。

JVM架构体系与GC命令都有哪些

JVM Architecture

JVM架构体系

垃圾回收(garbage collection):负责回收堆内存heap中没有被使用的对象

判断对象是否存活,可达性检测

JVM架构体系与GC命令都有哪些

垃圾回收算法

可用内存缩小为原来的一半

每次收集时,所有的标记对象都要被拷贝,从而导致一些生命周期很长的对象被来回拷贝多次,消耗大量的时间 ->分代回收来解决这个问题

分代回收算法Generational  Collecting:根据对象存活周期的不同将内存划分为几块新生代:内存分为一块较大的Eden空间和两块较小的Survivor空间。新建object在Eden,Eden满时触发YGC,Eden中存活对象被移动到S0区,清空Eden;等Eden再满载YGC,Eden和S0中的存活对象被复制到S1(复制算法保证了S1中来自Eden和S0两部分的存活对象占用连续的内存空间,避免了碎片化);清空Eden和S0。下一轮的时候S0和S1交换角色,如此循环往复。如果对象的复制次数达到15次,该对象就会被送到老年代。老年代:对象存活率高

垃圾回收器(垃圾回收算法的具体实现)

并行与并发

回收器类型

  1. NEW

  2. serial,单线程

  3. parNew,serial多线程版

  4. Parallel Scavenge,复制算法,并行,优先保证吞吐量,不顾及用户STW感受,吞吐量方面优化的系统,停顿时间长是可以接收的。

  5. OLD/tenured

  6. Serial Old,Serial回收器的老年代版本,单线程,标记-整理算法

  7. Parallel Old,Parallel Scavenge回收器的老年代版本,多线程,标记-整理算法

  8. Concurrent Mark Sweep, CMS:优先最短回收停顿时间,用户体验好,标记-清除算法

  9. NEW and OLD

  10. 关键点:region内存划分,优先级区域回收方式。优先回收价值最大的region

  11. garbage first,  G1:它将整个Java堆划分为多个大小相等的独立区域(Region),虽然还保留有新生代和老年代的概念,但新生代和老年代不再是物理隔离的了,它们都是一部分Region(不需要连续)的集合。

JVM架构体系与GC命令都有哪些

类装载子系统(classloader  sub-system):定位和导入二进制class文件,校验导入类的正确性,为类变量分配并初始化内存,解析符号引用

JVM架构体系与GC命令都有哪些

执行引擎(execution engine):执行classloader中的方法指令

即,源码/源代码/Source code/.java -> 字节码/Bytecode/.class -> 机器码/Machine  code/原生码/Native Code

JVM架构体系与GC命令都有哪些

运行时数据区(runtime data areas):JVM运行时需要从整个计算机内存中划出一块内存区域存储jvm需要用到的东西

JVM架构体系与GC命令都有哪些

垃圾回收器开启命令

Command  line新生代gc模式老年代gc模式-XX:+UseSerialGCserial串行回收器serialOld串行回收器-XX:+UseParNewGCparNew并行回收器default-XX:+UseParallelGCparallel并行回收器default-XX:+UseParallelOldGCdefaultparallel并行回收器-XX:+UseConcMarkSweepGCdefaultCMS并行回收器-XX:+UseG1GCG1回收器G1回收器

根据上表新生代与老年代的gc模式互为搭配一起为垃圾回收器服务。

关于JVM架构体系与GC命令都有哪些就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

推荐阅读:
  1. JVM和GC关键参数
  2. Xen 工作原理与体系架构

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

jvm gc

上一篇:Java基础入门篇之如何理解方法和重载

下一篇:JVM垃圾回收原理该怎么解析

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》