
GC
zerone-f
这个作者很懒,什么都没留下…
展开
-
第17课:JVM垃圾回收分代收集算法
内容: 1.分代GC在新生代的算法 2.分代GC在年老代的算法一、分代GC在新生代的算法 JVM对内存Heap的不同区域采用不同的算法。主要是新生代和年老代,新生代比较适合复制算法,新生代有Eden/From/To,采用复制算法,速度非常快。Eden中存活的对象会被复制到To区域。二、分代GC在年老代的算法 老年代的对象的生命周期比较长,不适合复制算法...原创 2018-11-03 09:50:43 · 373 阅读 · 0 评论 -
第27课:MAT中的GC Root解析和具体类别分析
内容: GC Root解析 GC Root具体类别分析一、GC Root解析 1.MAT查看GC RootJava Basics->GC Root二、GC Root具体类别分析Gc root:一个gc根就是一个对象,这个对象从堆外可以访问读取。以下一些方法可以使一个对象成为gc根。 1.System class:被bootstrap或者...原创 2018-11-04 20:57:26 · 3457 阅读 · 1 评论 -
第26课:MAT中的Dominator Tree与Retained Set详解
内容: 1.Dominator Tree与Retained Set 2.Dominator Tree详解一、Dominator Tree与Retained Set Retained set:是这个对象本身和他持有引用的对象和这些对象的retained set所占内存大小的总和; Dominator Tree(支配树)视图,在此视图中列出了...原创 2018-11-04 20:39:25 · 1715 阅读 · 0 评论 -
第16课:瞬间理解三种基本的GC算法基石
内容: 1.GC的标记、清除算法 2.GC的复制算法 3.GC的标记、整理算法一、GC的标记、清除算法 内存中的对象构成一棵树,当有效的内存被耗尽的时候,程序就会停止,此时做两件事: a)标记,标记从树根可达的对象(途中水红色) b)清除(清除不可达的对象) 标记清除的时候需要停止程序运行,如果不停止,此时如果存在...转载 2018-11-02 22:57:59 · 769 阅读 · 0 评论 -
第15课:GC时候的引用计数算法和根搜索算法
内容: 1.GC时候的引用计数 2.GC的时候根搜索算法一、GC时候的引用计数 对象一旦被使用,计数器会进行+1操作,当对象取消引用计数器-1操作,当为0时被标示为垃圾。此种标示方法的弊端在于已经死亡的对象如果存在相互引用,则会一直占用内存空间,不被回收。此时会导致内存泄漏。为了解决这个问题出现了根搜索算法。二、GC的时候根搜索算法 1.Java采用该...原创 2018-11-02 22:27:28 · 497 阅读 · 0 评论 -
第25课:基于MAT分析Shallow Heap和Retained Heap
内容:Shallow Heap和Retained Heap一、Shallow Heap和Retained Heap Shallow Heap:只包含自己堆内的元素对象,不包含引用的对象; Shallow Size:对象自身占用的内存大小,不包括它引用的对象。针对非数组类型的对象,它的大小就是对象与它所有的成员变量大小的总和。当然这里面还会包括一些java语言特性的数据存储...原创 2018-11-04 19:18:58 · 503 阅读 · 0 评论 -
第24课:使用MAT动态分析Spark应用程序初体验
内容: 1.如何使用MAT直接分析运行的Spark程序 2.用MAT直接分析运行的Spark运行初步体验一、如何使用MAT直接分析运行的Spark程序 1.启动MAT 2.启动需要检测分析的程序import org.apache.spark.SparkConf;import org.apache.spark.api.java.JavaPairRD...原创 2018-11-04 16:39:16 · 259 阅读 · 0 评论 -
第23课:使用MAT对Dump文件进行分析实战
内容: 1.导出内存中的Dump文件 2.使用MAT对Dump文件进行分析实战一、导出内存中的Dump文件 1.下载Memory Analyzer (MAT) 2.解压到合适的目录下,我自己是放到了/home/hadoop/下3.在Eclipse IDE下编写一个程序package DT.JavaJVM;/** * Hello worl...原创 2018-11-04 14:53:15 · 586 阅读 · 0 评论 -
第22课:通过案例瞬间理解JVM中PSYoungGen、ParOldGen、MetaSpace
内容: 理解JVM中PSYoungGen、ParOldGen、MetaSpace一、理解JVM中PSYoungGen、ParOldGen、MetaSpaceHeap PSYoungGen total 2560K, used 2505K [0x00000000ffd00000, 0x0000000100000000, 0x0000000100000000) ede...原创 2018-11-04 09:46:06 · 7917 阅读 · 0 评论 -
第21课:JVM中G1收集器解密
内容: 1.G1收集器的解析 2.G1收集器的使用一、G1收集器的解析 G1和其他收集器截然不同,从分代上看,它仍然属于分代垃圾收集器,也会区分新生代、老年代,仍然有Eden区和Survivor区;从堆结构上看,它并不要求新生代、老年代都连续。作为CMS的长期替代方案,G1使用了分区算法,其特点如下: a)并行性:在回收期间,可以由多个GC线程同时工...原创 2018-11-03 22:17:07 · 169 阅读 · 0 评论 -
第20课:JVM中CMS收集器解密
内容: 1.CMS收集器的解析 2.CMS收集器的使用一、CMS收集器的解析 1.CMS(Concurrent Mark Sweep) 并发收集,低停顿,适合响应时间敏感的应用使用。 2.CMS垃圾收集阶段: CMS-Initial mark(初始标记):标记GC Roots能够关联到的对象。stop-the-world,暂停从root对...原创 2018-11-03 20:33:42 · 182 阅读 · 0 评论 -
第19课:JVM中Serial收集器、ParNew收集器、Parallel收集器解析
内容: 1.Serial收集器 2.ParNew收集器 3.Parallel收集器一、三种收集器解析 Serial收集器:单线程的方式,串行的方式,一般在新生代来收集垃圾。Serial Old收集器采用标记/压缩的算法一般用来收集老年代。没有多线程在线程切换带来的性能消耗。 ParNew收集器:多线程的,采用复制算法和Stop the World的方...原创 2018-11-03 19:24:16 · 823 阅读 · 0 评论 -
第18课:JVM垃圾回收器串行、并行、并发垃圾回收器概述
内容:1.JVM中不同的垃圾回收器2.穿行、并行、并发垃圾回收器概述一、JVM中不同的垃圾回收器 1.按照分代收集的方式,把垃圾回收器做如下的划分: a)新生代收集器:Serial 、ParNew、Parallel Scavenge b)老年代收集器:CMS、Serial Old、Paralled Old c)新生代和老年代都可以...原创 2018-11-03 11:13:23 · 1417 阅读 · 0 评论 -
第28课:MAT中的内存泄露检测介绍
内存: 1.内存泄露的巨大风险 2.MAT中的内存泄露一、内存泄露的巨大风险 Memory Leak,是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光。二、MAT中的内存泄露选择:Leak Suspects ...原创 2018-11-04 21:11:19 · 530 阅读 · 0 评论