
gc
varyall
这个作者很懒,什么都没留下…
展开
-
GC日志分析
JVM的GC日志的主要参数包括如下几个:-XX:+PrintGC 输出GC日志-XX:+PrintGCDetails 输出GC的详细日志-XX:+PrintGCTimeStamps 输出GC的时间戳(以基准时间的形式)-XX:+PrintGCDateStamps 输出GC的时间戳(以日期的形式,如 2013-05-04T21:53:59.234+0800)-XX:+PrintHeapAtGC 在进...转载 2018-06-26 11:54:49 · 534 阅读 · 0 评论 -
minor gc 触发条件
minor gc 触发条件:1、Eden满了2、 https://stackoverflow.com/questions/38357477/minor-gc-happening-when-eden-is-not-full-what-would-be-the-cause-of-minor-gc-wh转载 2018-07-22 19:21:00 · 754 阅读 · 0 评论 -
一次让人难以忘怀的排查频繁Full GC过程
我们的Java应用因频繁FULL GC导致性能降低很多,经过多人的定位也没有结论,于是我自主请命,经过一天的研究终于搞定了,现把经验与大家共享,相关的gc日志如下:4.758: [Full GC [PSYoungGen: 464K->0K(71936K)] [PSOldGen: 37949K->33994K(68672K)] 38413K->33994K(140608K) [...转载 2018-07-23 09:43:25 · 1909 阅读 · 1 评论 -
从实际案例聊聊Java应用的GC优化
当Java程序性能达不到既定目标,且其他优化手段都已经穷尽时,通常需要调整垃圾回收器来进一步提高性能,称为GC优化。但GC算法复杂,影响GC性能的参数众多,且参数调整又依赖于应用各自的特点,这些因素很大程度上增加了GC优化的难度。即便如此,GC调优也不是无章可循,仍然有一些通用的思考方法。本篇会介绍这些通用的GC优化策略和相关实践案例,主要包括如下内容:优化前准备: 简单回顾JVM相关知识、...转载 2018-08-13 17:44:19 · 201 阅读 · 0 评论 -
JVM系列(四)之GC调优
JVM内存参数调优 为什么要GC调优? 说说Minor GC 、Major GC、Full GC 总结 限制JVM内存的大小 减少新生代对象转移到老年代的数量 选择合适的垃圾收集器 垃圾收集器的调优分析 Serial收集器 ParNew收集器 GC日志分析 Parallel收集器 Parallel Old 收集器 CMS收集器 关于CMS收集器 关于CMS触发条件 ...转载 2018-08-13 17:52:29 · 18895 阅读 · 0 评论 -
什么时候触发MinorGC?什么时候触发FullGC?
触发MinorGC(Young GC) 虚拟机在进行minorGC之前会判断老年代最大的可用连续空间是否大于新生代的所有对象总空间 1、如果大于的话,直接执行minorGC 2、如果小于,判断是否开启HandlerPromotionFailure,没有开启直接FullGC 3、如果开启了HanlerPromotionFailure, JVM会判断老年代的最大...转载 2018-09-08 10:26:03 · 4920 阅读 · 1 评论 -
GC算法实践(三) 标记-压缩算法
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.youkuaiyun.com/chunyuan314/article/details/78229088本文将实现垃圾回收算法中的标记-压缩算法。1.标记-压缩算法简介标记-压缩算法的基本思路: 标记阶段。该阶段与标记-清除算法中的标记算法一样。 遍历根对象及其引用的对象。假设每个对象都有个标记位flag,对...转载 2018-09-08 10:30:37 · 336 阅读 · 0 评论 -
标记-压缩算法
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.youkuaiyun.com/njys1/article/details/53725240GC标记压缩算法由标记阶段和压缩阶段组成,标记阶段和标记-清除算法的完全一致接下来,要搜索多次堆来进行压缩,压缩阶段通过数次搜索堆来重新装填活动对象压缩阶段不会改变对象的排列顺序,只是缩小彼此间的空隙,使他们聚集到堆的一端c...转载 2018-09-08 10:41:38 · 658 阅读 · 0 评论 -
JVM空间分配担保(失败担保机制)
在发生Minor GC之前,虚拟机会先检查老年代最大可用的连续空间是否大于新生代所有对象总空间。如果这个条件成立,那么Minor GC可以确保是安全的。如果不成立,则虚拟机会查看HandlerPromotionFailure设置是否允许担保失败。如果允许,那么会继续检查老年代最大可用的连续空间是否大于历次晋升到老年代对象的平均大小。如果大于,将尝试着进行一次Monitor GC,尽管这次GC是有风...转载 2018-09-08 11:16:20 · 9534 阅读 · 5 评论