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类信息 ,用于存放静态对象。

原文地址:https://www.cnblogs.com/suixin84/p/6440644.html