• eclipse jvm调优


    1.初始参数

    -Xms256m
    -Xmx1024m

    2.在eclipse.ini中加入,注意一点的是D:/soft/eclipse-jee,这个目录必须存在,启动时并不会自动目录

    -verbose:gc
    -XX:+PrintGCDetails
    -XX:+PrintGCDateStamps
    -Xloggc:D:/soft/eclipse-jee/gc.log

    3.分析日志

    2017-02-24T22:28:40.366+0800: 1.432: [GC [PSYoungGen: 65600K->10872K(76480K)] 65600K->22224K(251264K), 0.0280555 secs] [Times: user=0.13 sys=0.00, real=0.03 secs] 

    这个代表进行了GC,

    解析:

      a、1.432,表示jvm启动到垃圾收集的实际

      b、GC:是一个minor gc(新生代gc)

          c 、[PSYoungGen: 65600K->10872K(76480K):表示新生代使用了多线程垃圾收集器parallel Scavenge,65600K表示新生代垃圾收集前占用的空间,10872K表示新生代垃圾收集之后的空间,新生代分为两个区,一个eden区和两个survivon区,minor gc后,eden区为空,10872K为survivon区大小,76480K为整个新生代大小。

       d、65600K->22224K(251264K):

        251264K是整个堆区的大小,65600K收集前堆区的大小,22224K收集后堆区的大小。

    4.修改参数为:

    -Xms1024m    最小堆大小
    -Xmx1024m   最大堆大小
    -XX:NewSize=768m 新生代大小
    -XX:MaxNewSize=768m 新生代最大值
    -XX:PermSize=200m  持久代大小
    -XX:MaxPermSize=200m 持有代大小

    5.java 堆内存分布

      a。年轻代   所有新生成的对象都在新生代,一个eden区,两个survivor区,当eden区满时,把存活对象复制到一个survivor区,当一个survivor区满时,就把存活对象复制到另外一个survivor区,当另个一个survivor区也满了的时候,从前一个survivor区复制过来还存活的对象,就被复制到old区

      b。年老代  在经历了N次垃圾回收还存活的对象,会放到年老代

      c。持久代  java类信息 ,用于存放静态对象。

  • 相关阅读:
    vue --- 全局弹窗,只调用对应实例
    代理相关;win操作
    mongoBD + node + express
    菜鸟初学 node 推荐 亲测easy
    H5 ---- 点击遍历所有标签,复制对应的文本
    async与await初步应用
    C# Enum 添加自定义Attribute,然后通过泛型与反射的方式得到事先定义的标记
    VS2013 C# 调用 cognex 的QuickBuild做程序时发生一个错误
    C# 获取数组的内存地址
    利用反射插入数据库与更新数据库
  • 原文地址:https://www.cnblogs.com/suixin84/p/6440644.html
Copyright © 2020-2023  润新知