什么是GC Roots

本地方法栈中JNI引用的对象,虚拟机栈中引用的对象,栈帧中的本地变量 ,由于 断开了与 对象(a对象)的联系,所以 对象会被回收,Java 通过 JNI 来调用本地方法

CMS收集器中两个致命的问题

concurrent mode failure 收集器无法处理浮动垃圾,晋升阈值太小,promotion failed 晋升失败原因,空间碎片太多

Java-Parallel GC介绍

Parallel GC中该对象会直接进入老年代,则会触发一次Full GC,都有这么一个策略:在执行Young GC之前,后来开发者开发了基于LISP2算法的并行版的Full GC收集器来收集整个GC堆

jstack查看某个进程堆栈信息

top 查看系统中最耗资源的java进程pid,找出上一步pid内最耗cpu的线程pid,RUNNABLE 线程处于执行中,定位代码

jmap查询JVM堆内存

MaxHeapFreeRatio 参数用来设置堆空间最大空闲比例,MinHeapFreeRatio 参数用来设置堆空间最小空闲比例,打印Java堆内存的永久保存区域的类加载器的智能统计信息,将会打印目标虚拟机中加载的每个共享对象的起始地址、映射大小以及共享对象文件的路径全称

jstat查看JVM的GC情况

显示GC相关信息,显示已加载 的数量,和空间占用情况,显示垃圾回收的相关信息(通-gcutil),同时显示最后一次或当前正在发生的垃圾回收的诱因,显示JVM实时编译(JIT)信息

查看JVM运行参数jinfo命令

描述:开启或者关闭对应名称的参数,主要是针对 boolean 值的参数设置的,开启/关闭某个JVM参数,包括Java System属性和JVM命令行参数,也可以动态的修改正在运行的 JVM 一些参数

JVM ZGC介绍

因为染色指针只是重新定义内存中某些指针的其中几位,这些标记本质上只和对象引用有关,ZGC使用了内存多重映射(Multi-Mapping)将多个不同的虚拟内存地址映射到同一个物理内存地址上,暂时不设分代,使用读屏障,着色指针和内存多重映射等技术来实现 算法,以低延迟为目标的一款收集器

G1垃圾收集器

对象大小超过一个 ,存储到标记为Humongous的多个连续Region中,时,由于只收集老年代区,所以老年代分区引用(4,5)关系将被使用,对象大小大于一半 但是小于一个 ,存储到标记为Humongous的Region中,G1收集器规定只要对象的大小超过了 大小的一般就会被认为是巨型对象

JVM老年代垃圾收集器Serial Old和Parallel Old

老年代收集器,是Parallel Scavenge老年代版本,用的算法是 ,在JDK1.6提供,多线程收集,Serial Old垃圾收集器,Parallel Old,老年代垃圾收集器,与Serial一样,是一个单线程垃圾收集器,不同的是用的算法不一样(标记-整理)

入门小站