?
你有没有觉得eclipse的启动和运行很慢,而且时常卡,卡,卡。如果你没有觉得。你真是个耐心的人。
这一切都归结于eclipsejvm的配置上。 Eclipse是java写的。Java写的不调整JVM,就是用最保守的参数运行。自然很慢。
?
Eclipse的配置文件在eclipse安装目录下的eclipse.ini文件里面。
?
建议将配置修改为
?
?
-startup
plugins/org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.0.200.v20090519
-showsplash
org.eclipse.platform
?
?
-vmargs
-Xms512m??? //堆初始大小512m
-Xmx1024m? //堆最大大小1024m。如果你的内存小于2G,把这项改成512m。内存省着点用吧。
-Xmn128m? //固定新生代的大小为128m。
?
?
-XX:PermSize=96m? //固定永久代的大小96m
-XX:MaxPermSize=96m
-XX:+DisableExplicitGC // 让System.gc()调用无效。内存配置足够多了。不必要再显式调用GC了。
?
?
先看看默认的参数。
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vmargs
-Xms40m
-Xmx384m
?
这个配置的问题是
1.?????堆内存分配的过小。估计是给当年512m内存时代跑eclipse准备的参数。现在那么好的机器还跑这个配置,岂不是浪费。
2.??没有固定永久代的大小。通过对GC的调整发现,初始配置perm区域很容易就满,导致频繁GC。
3.??新生代的大小也要固定。新生代不能过大也不能过小。过小导致频繁的gc,过大导致一次gc的时间过长。一般为heap size 的1/4。
?
这次eclipse GC的调优,是参考这篇文章
http://www.longtask.com/blog/?p=592
?
?
关于java GC,还有很多值得参考的文章。
?
?
http://blog.csdn.net/ae86_fc/article/details/6244164
http://gfllove.blog.163.com/blog/static/151502720104215557894/
?
有兴趣的可以学习。
?
通过调优JAVA GC, 常常会大大提高程序的性能和吞吐量。
推荐一位大牛的博客, http://rednaxelafx.iteye.com/category/25057?show_full=true他对JVM的研究很深入。
?