美文网首页Java 杂谈
jvm系列之-gc日志查看

jvm系列之-gc日志查看

作者: fkxuexi | 来源:发表于2018-08-14 15:39 被阅读1次

在上一篇中我们介绍的有参数的设置,那我们要了解不同的参数对于程序的影响和对于调优的影响,这个时候我们就需要查看gc日志来看我们设置的参数是否合理,这一章节中我们就来查看gc日志

一、新生代和老年代的比值对性能的影响

 Map map = new HashMap<>();
        for (int i = 0; i < 10; i++) {
            byte[] b = new byte[1024*1024];
            map.put(i,b);
        }
        System.out.println(map);
-Xmx10M -Xms10M -verbose:gc -XX:+PrintGCDetail  -XX:PrintHeapAtGC  -Xloggc:ggc.log
image.png
  • 1、我们首先来看一个问题:yong = eden+survivor from + survivor to的,但是 2048+512+512 > 2560

    解释如下:新生代的可用空间:eden+survivor from,是的 to不属于可用空间,在一次MinorGC之后,eden和from中还活着的对象会被全部复制到to中,然后from和to的角色互换,即可用空间只是eden+from

  • 2、第二个问题,我们可以看到在 before gc前,from和to都是 0%,而old区则为85%,为何新生代的from和to都是0%呢?

解释如下:我们每次产生的对象的大小都是1m的对象,当对象过大时,会直接进入老年代

  • 3、有很多的博文都是介绍XX:SurvivorRation的默认值为8,我的上一篇博文中也是这样来写的,但是我们可以看到这里的比值很显然不是8,

解释如下:在我们不断上调Xmx和Xms的时候,这个比值近似8

针对问题2,我们现在做一些改动,现在只是生成10M大小的对象,单个对象的大小是1M,显然我们是需要调整Xmn和SurvivorRation的比例的

二、设置Xmn和SurvivorRation的比值

-Xmx10M -Xms10M -Xmn6M -XX:SurvivorRatio=4 -verbose:gc -XX:+PrintGCDetails -XX:+PrintHeapAtGC -Xloggc:gcc.log

即:堆区20m ,新生代6M,Eden:surviror = 4 ,即eden=4096:from=1024:to=1024


image.png

我们可以看到,在 before gc前,对象都存在于eden区,


image.png
在 after gc之后,我们可以看到,一部分对象存在于from区了,说明我们的调整是有效的

下一篇我们将会讨论一下jvm的垃圾回收机制,这一篇估计会比较麻烦 ,但是阅读垃圾回收的策略,你会发现其实挺好玩的

相关文章

  • jvm系列之-gc日志查看

    在上一篇中我们介绍的有参数的设置,那我们要了解不同的参数对于程序的影响和对于调优的影响,这个时候我们就需要查看gc...

  • idea 项目启动慢优化

    在 VM options 中加入jvm参数,重启 查看日志中的GC 次数,和GC原因,不断调整,最终full GC...

  • jvm gc日志查看

    启动参数: -XX:+PrintGC 输出GC日志-XX:+PrintGCDetails 输出GC的详细日志-XX...

  • 查看 jvm GC日志

    [TOC] GC日志阅读 在开发的世界里,阅读日志是最基础的能力,也是解决问题重要的工具。同样阅读gc日志也是解决...

  • 通过 gc.log 调优 JVM

    一、GC 日志查看 GC 日志默认是关闭的,需要查看 GC 日志首先需要开启 GC 日志。 常用 GC 日志的配置...

  • jvm

    查看jvm中的进程 检查内存使用情况 查看对象分布,内存空间和数量 查看gc日志

  • 垃圾回收机制算法分析

    什么是垃圾回收机制? JVM参数-查看GC日志 : -XX:+PrintGCDetails finalize方法作...

  • JVM - GC日志

    JVM - GC日志 -XX:+PrintGC 输出GC日志 -XX:+PrintGCDetails 输出GC的详...

  • jvm 内存分区及回收

    近期由于jvm经常出现full gc导致jvm崩溃,从日志上查看是Eden和survivor from,to相关的...

  • JVM系列之GC

    JVM系列之GC 谈到JVM,大家都知道GC(Garbage Collection),GC这个话题说浅了就一句话-...

网友评论

    本文标题:jvm系列之-gc日志查看

    本文链接:https://www.haomeiwen.com/subject/alhvbftx.html