eclipse经常未响应优化

时间:2023-01-21 12:21:56

如果经常提示内存耗尽
将eclipse.ini内容替换为以下代码
-startup
plugins/org.eclipse.equinox.launcher_1.1.0.v20100507.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.0.v20100503
-product
org.eclipse.epp.package.jee.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
256M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms256m
-Xmx512m
-XX:PermSize=128M
-XX:MaxPermSize=128M
-XX:+UseParallelGC
-Xverify:none
重点是黑体的几行

 

-XX:+DisableExplicitGC ##禁用System.gc()的显示内存回收 对这个参数不是很熟悉

 

netbeans 相关配置

http://blog.csdn.net/petehero/article/details/518261

 

 

------------------------------------------------

Eclipse启动正常,但在打开工程时会出未响应的情况,在任务管理器中察看也是味应用。造成这种情况原因有3:
一、CPU不够用,在任务管理器中察看CPU会达到90%以上,甚至是100%。刚才看了CPU才24%,显然问题不在这里。
二、内存不够,在任务管理器中察看内存才用1.7G,我有机器内存4G,安装Windows7 64bit,内存全能识别。
三、按照易经的不易变易来分析,上面2种情况是不易,那么变易一定在Eclipse自身上。
打开Eclipse的目录,里面有一个eclipse.ini配置文件,打开会看到有内存配置的参数

  1. openFile
  2. --launcher.XXMaxPermSize
  3. 256M
  4. -showsplash
  5. org.eclipse.platform
  6. --launcher.XXMaxPermSize
  7. 256m
  1. openFile  
  2. --launcher.XXMaxPermSize  
  3. 256M  
  4. -showsplash  
  5. org.eclipse.platform  
  6. --launcher.XXMaxPermSize  
  7. 256m  

其中openFile是打开文件时需要的内存大小参数,org.eclipse.platform是Eclipse运行所需内存参数。两个都是256M,看来小了点,我给它调成512M,再启动Eclipse,打开工程时一点都不卡,未响应的情况也没有了。

 

--------------------------------------------------

Eclipse无响应假死的解决办法

Eclipse无响应,假死的解决办法,网上通常都是调整eclipse的配置文件,修改jre占用的内存等等,实际发现效果不明显,很多时候假死都是在编辑js和jsp的时候发生的,后来在网上找到了几个解决办法,都不见效,后来看eclipse日志发现是由于应用的JS库过于臃肿庞大,且有两个同样的js应用,每次eclipse进行jsDOM生成时,就会触发假死,把引用的多余的js库去掉就好了。下面是几个网上的解决方案,我感觉都只能解决一方面的问题,真正解决eclipse的假死问题,还得看eclipse在workspace下的日志。解决js库过于庞大还可以通过将下面两个参数删除来解决,让eclipse不在启动时,自动校验js

打开项目的.project文件,将
<buildCommand>
                        <name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
                        <arguments>
                        </arguments>
</buildCommand>
跟<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
这两个地方删掉即可。。。。。

 

其他网上的几个方法:

方法一:更换更高版本的jre,有时候有的jre版本造成eclipse假死,更换更高版本的jre有时会解决问题              

 在Eclipse——Window——Preferences——Java——Installed JREs下

       请确保你上面显示的是JDK文件夹里面的JRE,而不是与JDK在同一文件夹的那个目录,同时你在新建JRE时要把下面的jar文件加入进来:(点击Add External JARS即可加入JAR文件)         
               D:\Program Files\Java\jdk1.5.0_06\jre\lib下的 *.jar;以及

               D:\Program Files\Java\jdk1.5.0_06\jre\lib\ext下的*.jar.

 

方法二:

 

工程目录右键->Properties->Java Build Path->Libraries 下面

找到 javax.servlet.jar 和 javax.servlet.jsp.jar

下面选择Javadoc location ,

点击Edit,去掉Java location path的值或者指定一个本地地址。

-----------------------------------------------------------------------------

产生此现象的原因是每次打开提示时Eclipse会自动访问网络上的API Doc,网束慢的情况下就会有假死现象。

 

 

============================eclipse性能调优========================

最近,Eclipse(Eclipse-JEE3.5)运行十分缓慢(可能插件安装过多),因此,得到了个机会调优一下,以便提高工作效率
下图是未经任何调整eclipse的gc情况(使用jvisualvm命令,安装visual gc插件)

在终端输入:jvisualvm运行后,工具->插件->visual gc,安装。

启动eclipse后,在终端运行: ps -ef | grep eclipse,然后在jvisualvm的应用程序一栏选择eclipse pid的程序双击,即可到visual gc上查看图表。

-Xms1024m
-Xmx1024m

对应的为图中的 Old 区;

-XX:NewSize=768m
-XX:MaxNewSize=768m

对应的为图中的 Eden 区;

-XX:PermSize=200m
-XX:MaxPermSize=200m

对应的为图中的 Perm区;

eclipse经常未响应优化
 
从图中可以看出,仅启动过程就有38次young gc,11次full gc
为了查看gc细节,在eclipse.ini中加入如下参数:
-verbose:gc
-XX:+PrintGCDetails
-XX:+PrintGCDateStamps
-Xloggc:D:/soft/eclipse-jee/gc.log
gc的内容如下:

eclipse经常未响应优化
 
从gc日志中可以看出:
(1)young区开始为4928K,持续的不够,因此造成不断的young gc
(2)full gc时,old区的空间增大扩容,因此old区空间也不够
为了防止这种情况发生,加入以下参数:
-Xms768m
-Xmx768m
-XX:NewSize=512m
-XX:MaxNewSize=512m
此次调整后结果如下图:

eclipse经常未响应优化
 
从图中可以看出,young gc没有了,但为啥还11次full gc呢?
以下是此次gc的日志:

eclipse经常未响应优化
 
从gc.log中,可以看出,是因为perm区的没有空间了,才导致的full gc,于是将perm区增大并固定大小
加入以下参数:
-XX:PermSize=96m
-XX:MaxPermSize=96m
此次调整后结果如下:

eclipse经常未响应优化
 
可以看出,没有full gc了,而且young gc只有一次,有了一定的效果了
启动时gc的问题解决了,现在来看其他问题:

eclipse经常未响应优化
 
从图中可以看出,如果classloader加载class的时间能快些,应该也会节省些时间
加入以下参数:
-Xverify:none(关闭Java字节码验证,从而加快了类装入的速度)

eclipse经常未响应优化
 
将上两图比较
第一个:平均每个类的载入时间为,54.615/10950 = 0.0049876712328767s
第二个:平均每个类的载入时间为,34.498/9484 = 0.0036374947279629s
可以看出,多少是有一些性能上的提高的
考虑到eclipse长时间运行,其他可能调节的有以下几点:
(1)关闭System.gc()
(2)提高eclipse中某些代码的JIT编译
(3)优化垃圾收集器,以减少垃圾收集造成应用无响应的时间
对于(1),加入以下参数:
-XX:+DisableExplicitGC
对于(2),会影响启动速度,但由于eclipse是长时间运行,因此此优化是必要的:
-XX:CompileThreshold=100(方法调用多少次就会被编译成本地机器码)

eclipse经常未响应优化
 
可以看出,编译方法的数量和时间明显增加
对于(3),换用CMS收集器应该比串行收集器要好,加入以下参数:
-XX:+UseParNewGC
-XX:+UseConcMarkSweepGC
-XX:CMSInitiatingOccupancyFraction=80
至此,调优结束

 

总结一下加入的参数如下:
-verbose:gc
-XX:+PrintGCDetails
-XX:+PrintGCDateStamps
-Xloggc:D:/soft/eclipse-jee-galileo-win32/eclipse/gc.log
-Xms512m
-Xmx512m
-XX:NewSize=256m
-XX:MaxNewSize=256m
-XX:PermSize=96m
-XX:MaxPermSize=96m
-XX:+DisableExplicitGC
-XX:CompileThreshold=100
-Xverify:none
-XX:+UseParNewGC
-XX:+UseConcMarkSweepGC
-XX:CMSInitiatingOccupancyFraction=80

http://blog.csdn.net/gtuu0123/article/details/6720253

参考如上内容用的eclipse.ini:

1、小内存,运行情况不错

-clean
-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.gtk.linux.x86_1.1.200.v20130807-1835
-product
org.eclipse.epp.package.cpp.product
--launcher.defaultAction
openFile
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vmargs
-Dosgi.requiredJavaVersion=1.6
-Xms512m
-Xmx512m
-XX:NewSize=256m
-XX:MaxNewSize=256m
-XX:PermSize=96m
-XX:MaxPermSize=96m
-XX:+DisableExplicitGC
-XX:CompileThreshold=100
-Xverify:none
-XX:+UseParNewGC
-XX:+UseConcMarkSweepGC
-XX:CMSInitiatingOccupancyFraction=80

2、大内存

-clean
-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.gtk.linux.x86_1.1.200.v20130807-1835
-product
org.eclipse.epp.package.cpp.product
--launcher.defaultAction
openFile
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vmargs
-Dosgi.requiredJavaVersion=1.6
-Xms1600m
-Xmx1600m
-XX:NewSize=800m
-XX:MaxNewSize=800m
-XX:PermSize=256m
-XX:MaxPermSize=256m
-XX:+DisableExplicitGC
-XX:CompileThreshold=100
-Xverify:none
-XX:+UseParNewGC
-XX:+UseConcMarkSweepGC
-XX:CMSInitiatingOccupancyFraction=80

3、大内存,自己弄的,可能优化的不合理

-clean
-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.gtk.linux.x86_1.1.200.v20130807-1835
-product
org.eclipse.epp.package.cpp.product
--launcher.defaultAction
openFile
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vmargs
-Dosgi.requiredJavaVersion=1.6
-XX:MaxPermSize=256m
-Xms40m
-Xmx2048m
-Xss1024k
-Xss1024k
-XX:+DisableExplicitGC
-XX:CompileThreshold=100
-XX:+UseParNewGC
-XX:+UseConcMarkSweepGC
-XX:CMSInitiatingOccupancyFraction=80
-Xverify:none

 

 

转自http://blog.csdn.net/angle_birds/article/details/19609011