首页
学习
活动
专区
工具
TVP
发布

Java9中的GC调优基础

本文将主要讲解GC调优需要知道的一些基础知识,会涉及到一些GC的实现细节,但不会对实现细节做很全面的阐述,如果你看完本文之后,能对GC有一个大致的认识,那本文的写作目的也就达到了。...本文将包含以下内容: GC的作用范围 GC负责的事情 JVM中的4种GC G1的一些细节 使用Java 9正式版对G1进行测试 一些简单的GC调优方法 一、GC的作用范围 要谈GC的作用范围,首先要谈JVM...注意传统的VM参数-XX:+PrintGCDetails在Java9中已经废弃,会有Warning信息。...从上边的测试可以得到如下GC日志1,这是一次完整的年轻代GC,从中可以看到,默认的区域大小为1M,同时将开始一次Full GC,其格式大致为[][][] GC(0(315) [12.079s][info ][gc,heap ] GC(18

67270
您找到你想要的搜索结果了吗?
是的
没有找到

Minor GC、Major GC、Full GC的区别

今天主要谈谈JVM GC的类型和策略,特别是大家经常混淆的Minor GC、Major GC、Full GC,年轻代GC、老年代GC,之间有什么区别和联系。...Major GC 老年代的垃圾收集叫做Major GC,Major GC通常是跟full GC是等价的,收集整个GC堆。 Minor GC和Major GC其实就是年轻代GC和年老年GC的俗称。...而在Hotspot VM具体实现的收集器:Serial GC, Parallel GC, CMS, G1 GC中,大致可以对应到某个Young GC和Old GC算法组合。...分代GC并不收集整个GC堆的模式,而是只专注分代收集 Young GC:只收集年轻代的GC Old GC:只收集年老代的GC(只有CMS的concurrent collection是这个模式) Mixed...以上就是Minor GC、Major GC、Full GC的一个介绍,后续我们再重点介绍JVM GC相关的垃圾回收算法以及底层的实现。

5.8K73

GC

1.概要 这篇文章主要概括的聊一聊GC,大概知道有哪些知识点或使用的时候需要注意什么。讲GC的文章一抓一大把,我就挑几个我个人比较有兴趣的地方分享一下。 1.1什么是GC?...LOH上的对象只有在full GC时才会被回收。 Roots: GC roots是从代码中可直接或间接访问的对象。在开始垃圾回收时,GC会遍历所有roots以找出在heap上的哪些对象仍然被需要。...日常编码的时候使用GC需要注意什么? 避免频繁GC: 频繁地调用 GC.Collect() 可能会导致CPU资源的浪费,因此应尽量避免。...GC是如何标记的?...GC策略包括何时执行GC、选择哪个代际进行回收、是否执行并发或并行垃圾回收等。 性能目标: GC的计划还受到应用程序的性能目标的影响。

18120

Minor GC、Major GC和Full GC有何不同

三种GC GC类型 GC区域 触发条件 Stop The World时间 Minor GC Eden 和 Survivor 区域 Eden区域 > 设定内存阈值 对于大部分应用程序,Minor GC停顿导致的延迟都是可以忽略不计的...如果Eden 区大部分新生对象不符合 GC 条件,Minor GC 执行时暂停的时间将会长很多。...Major GC Old区域 根据不同的垃圾收集器配置由Minor GC触发 MajorGC 的速度一般会比 Minor GC 慢 10倍以上。...Full GC 整个Heap空间包括年轻代和永久代 调用System.gc时Old老年代空间不足方法区空间不足通过Minor GC后进入老年代的平均大小大于老年代的可用内存 Full GC作用于整个堆空间的...首先,许多 Major GC 是由 Minor GC 触发的,所以很多情况下将这两种 GC 分离是不太可能的。

47170

Minor GC、Major GC 和 Full GC 之间的区别

Minor GC 从年轻代空间(包括 Eden 和 Survivor 区域)回收内存被称为 Minor GC。这一定义既清晰又易于理解。...如果正好相反,Eden 区大部分新生对象不符合 GC 条件,Minor GC 执行时暂停的时间将会长很多。 所以 Minor GC 的情况就相当清楚了——每次 Minor GC 会清理年轻代的内存。...首先,许多 Major GC 是由 Minor GC 触发的,所以很多情况下将这两种 GC 分离是不太可能的。...这使得我们不用去关心到底是叫 Major GC 还是 Full GC,大家应该关注当前的 GC 是否停止了所有应用程序的线程,还是能够并发的处理而不用停掉应用程序的线程。...基于该信息,我们可以得出这样的结果,运行了12次 Minor GC、2次 Full GC,时间总跨度为50毫秒。

54610

Minor GC、Major GC和Full GC之间的区别

Minor GC 从年轻代空间(包括 Eden 和 Survivor 区域)回收内存被称为 Minor GC。这一定义既清晰又易于理解。...如果正好相反,Eden 区大部分新生对象不符合 GC 条件,Minor GC 执行时暂停的时间将会长很多。 所以 Minor GC 的情况就相当清楚了——每次 Minor GC 会清理年轻代的内存。...首先,许多 Major GC 是由 Minor GC 触发的,所以很多情况下将这两种 GC 分离是不太可能的。...这使得我们不用去关心到底是叫 Major GC 还是 Full GC,大家应该关注当前的 GC 是否停止了所有应用程序的线程,还是能够并发的处理而不用停掉应用程序的线程。...基于该信息,我们可以得出这样的结果,运行了12次 Minor GC、2次 Full GC,时间总跨度为50毫秒。

1.9K31

GC回收算法&&GC回收器

可达性分析算法 通过一系列名为”GC Roots”的对象作为起始点,从这些节点开始向下搜索,搜索所走过的路径称为引用链(Reference Chain),当一个对象到GC Roots没有任何引用链相连时...G1回收器工作步骤 新生代 GC 并发标记周期 混合收集 如果需要,可能进行 FullGC 新生代GC Eden区被占满,新生代GC启动,回收Eden和Survivor。...(和应用程序并发,但不能和新生代GC同时执行【新生代GC有修改Survivor的操作】) 并发标记:扫描并查找整个堆内存存活对象,并标记。...(GC:Garbage First) 执行年轻代和老年代GC。 混合GC执行多次之后,会触发新生代GC。然后循环: ?...GC的两种触发情况 Minor GC:新对象产生,申请Eden区失败后会触发Minor GC Full GC:对整个堆的对象进行清理。

71940

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券