Eclipse作为我们常用的开发工具,不少同学应该发现启动的时候有时会花上个几十秒甚至超过一分钟,其实要解决这个问题,我们只要稍微改动一下JVM的参数,就可以收到意想不到的效果。下面是我在eclipse.ini中配置的参数。仅仅这样修改一下,启动的时间一下子从几十秒缩短到了4,5秒。
-vmargs
-Xms512M
-Xmx512M
-Xmn128M
-Xverify:none
-XX:PermSize=64M
-XX:MaxPermSize=128M
-XX:+DisableExplicitGC
那么为什么通过这样的参数就可以加快Eclipse的启动呢。
1.通过设置-Xms 和 Xmx的值相同,减少了堆扩展带来的性能损耗,同样也会减少GC的次数
2.通过增大-Xmn的值,一个方面减少minor GC的次数,也尽量的减少晋升到老年代的对象,一旦晋升到老年代的对象数量减少,相应的major GC的次数也减少,在我的机器上,通过这些改动,启动的过程就没看到full gc发生了。
3.设置-Xveryfy:none,禁止class 字节码的校验,Eclipse的类文件都是久经考验的,所以不怎么需要在启动的时候校验了
4.设置permSize,因为默认的值是64M,Eclipse启动的时候还是要加载大量的class的,所以这只是为了防止持久代发生内存溢出。
5.-XX:+DisableExplicitGC:防止system.gc() 出发major(full)gc.
总的来说,通过这些参数的设置,改善方面还是minor GC和major GC的次数都大大的减少了,我们可以通过visual vm的gc 插件来观察修改前后的变化。
-vmargs
-Xms512M
-Xmx512M
-Xmn128M
-Xverify:none
-XX:PermSize=64M
-XX:MaxPermSize=128M
-XX:+DisableExplicitGC
那么为什么通过这样的参数就可以加快Eclipse的启动呢。
1.通过设置-Xms 和 Xmx的值相同,减少了堆扩展带来的性能损耗,同样也会减少GC的次数
2.通过增大-Xmn的值,一个方面减少minor GC的次数,也尽量的减少晋升到老年代的对象,一旦晋升到老年代的对象数量减少,相应的major GC的次数也减少,在我的机器上,通过这些改动,启动的过程就没看到full gc发生了。
3.设置-Xveryfy:none,禁止class 字节码的校验,Eclipse的类文件都是久经考验的,所以不怎么需要在启动的时候校验了
4.设置permSize,因为默认的值是64M,Eclipse启动的时候还是要加载大量的class的,所以这只是为了防止持久代发生内存溢出。
5.-XX:+DisableExplicitGC:防止system.gc() 出发major(full)gc.
总的来说,通过这些参数的设置,改善方面还是minor GC和major GC的次数都大大的减少了,我们可以通过visual vm的gc 插件来观察修改前后的变化。