一闪而过,OS上eclipse卡死问题

解决:

 

我们都知道linux系统的终端非常强大,但是有时我们安装软件后用终端打开linux软件得进入这个软件的安装目录才能打开,如果这个软件不是经常使用,时间久了就容易忘记!

eclipse启动优化,终于不那么卡了!

1、可以用  sudo ./eclipse -vm /home/username/jdk_path/bin/java 启动但是启动后仍有显示问题。

解决方式:

本次以eclipse软件为例

网上找了好多都是myEclipse的优化的,跟eclipse有点区别,找了很多方法还是不能让这个eclipse(Version: Kepler Release)快起来,太费事了,终于给俺找到一个挺好用的方法,转来的。

2、 修改 eclipse.ini 

1.通过在命令行中输入“where java”,找到除jdk目录下的所有java相关程序,直接删掉(一般会在C:WINDOWSsystem32下)

安装目录:/usr/share/eclipse

首先了解下JVM中几个相关的概念:
Xms:最小堆大小
Xmx:最大堆大小
Xmn:年轻代堆大小
Xss:每个线程的堆大小
PermSize:初始持久代大小
MaxPermSize:最大持久代大小
一般Xms、Xmx设置相同,PermSize、MaxPermSize设置相同,这样可以避免伸缩堆大小带来的性能损耗。

在 --launcher.appendVmargs 下添加

--launcher.GTK_version
2
如:

-startup
plugins/org.eclipse.equinox.launcher_1.5.0.v20180512-1130.jar
--launcher.library
/home/zm/.p2/pool/plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.700.v20180518-1200
-product
org.eclipse.epp.package.jee.product
-showsplash
org.eclipse.epp.package.common
--launcher.defaultAction
openFile
--launcher.appendVmargs
--launcher.GTK_version
2
-vm
/usr/lib/jvm/java-8-oracle/jre/bin/
-vmargs
-Dosgi.requiredJavaVersion=1.8
-Dosgi.instance.area.default=@user.home/eclipse-workspace
-XX: UseG1GC
-XX: UseStringDeduplication
--add-modules=ALL-SYSTEM
-Dosgi.requiredJavaVersion=1.8
-Dosgi.dataAreaRequiresExplicitInit=true
-Xms256m
-Xmx1024m
--add-modules=ALL-SYSTEM
-Declipse.p2.max.threads=10
-Doomph.update.url=http://download.eclipse.org/oomph/updates/milestone/latest
-Doomph.redirection.index.redirection=index:/->http://git.eclipse.org/c/oomph/org.eclipse.oomph.git/plain/setups/

2.内存不足,打开Eclipse目录下的eclipse.ini,把里面的-Xmx512m改成-Xmx256m

图片 1

首先eclipse安装根目录下打开eclipse.ini,加上配置:

图片 2

3.检查环境变量,path变量中将jdk路径放在最前边(开头的“.;”直接后边)

在终端里得输入 /usr/share/eclipse/eclipse才能启动

帮助

 

4.检查环境变量,path变量中将jdk中的jre路径放在最前边(开头的“.;”直接后边)

图片 3

1
2
3
-Xloggc:gc.log
-XX: PrintGCTimeStamps
-XX: PrintGCDetails

  

5.传言中的万能方案(不过估计非万能):把jdk目录下的jre目录直接复制到eclipse目录下

图片 4

目的是运行eclipse的时候可以打出详细gc过程。

6.删除文件:[workspace]/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi (此条感谢百晓风贡献,赞一个!)

在这里介绍直接在终端里输入eclipse就能启动eclipse的方法cd /usr/local/bin

启动eclipse,然后打开gc.log一看,哇塞启动一次就做了几十次GC,包括不少次Full GC,着手优化……

 

图片 5

先解决Full GC的问题:

博主亲测,6是个万能方法,很好用。

图片 6

帮助

 

图片 7

1
2
3.159: [Full GC 3.159: [Tenured: 22716K->26133K(35780K), 0.1116536 secs] 38493K->26133K(51908K), [Perm : 20479K->20479K(20480K)], 0.1117614 secs] [Times: user=0.11 sys=0.00, real=0.11 secs]
3.706: [Full GC 3.706: [Tenured: 26133K->27935K(43556K), 0.1235449 secs] 40042K->27935K(63204K), [Perm : 24575K->24575K(24576K)], 0.1236474 secs] [Times: user=0.13 sys=0.00, real=0.13 secs]

文章二

原文点击这里    eclipse启动无响应,停留在Loading workbench状态 

做开发的同学们或多或少的都会遇到eclipse启动到一定程度时,就进入灰色无响应状态再也不动了。启动画面始终停留在Loading workbench状态。反复重启,状态依旧。

       多数情况下,应该是非正常关闭eclipse工作区的文件状态错误所导致的。

       在工作区目录中,有一个.metadata目录,里面是工作区及各插件的信息,删除此目录,再重启eclipse,果然可以正常启动eclipse了,但原来工作区的配置和项目信息也都消失,直接显示的是eclipse欢迎界面。 

       那么怎么做才能保证之前的配置不丢失呢?这时想到启动停止时显示的状态:"Loading workbench",看来和这个workbench插件有关。查看工作空间中的.metadata/.plugins目录,在众多文件夹中 
com.collabnet.subversion.merge          org.eclipse.search 
org.eclipse.compare                           org.eclipse.team.core 
org.eclipse.core.resources                  org.eclipse.team.cvs.core 
org.eclipse.core.runtime               org.eclipse.team.ui 
org.eclipse.debug.core                 org.eclipse.ui.ide 
org.eclipse.debug.ui                   org.eclipse.ui.intro 
org.eclipse.dltk.core                    org.eclipse.ui.views.log 
org.eclipse.dltk.core.index.sql.h2     org.eclipse.ui.workbench 
org.eclipse.dltk.ui                           org.eclipse.ui.workbench.texteditor 
org.eclipse.epp.usagedata.recording    org.eclipse.wb.discovery.core 
org.eclipse.jdt.core                             org.eclipse.wst.internet.cache 
org.eclipse.jdt.ui                                 org.eclipse.wst.jsdt.core 
org.eclipse.ltk.core.refactoring          org.eclipse.wst.jsdt.ui 
org.eclipse.ltk.ui.refactoring            org.eclipse.wst.jsdt.web.core 
org.eclipse.m2e.core                    org.eclipse.wst.sse.ui 
org.eclipse.m2e.logback.configuration  org.eclipse.wst.validation 
org.eclipse.mylyn.bugzilla.core        org.eclipse.wst.xml.core 
org.eclipse.mylyn.tasks.ui             org.tigris.subversion.subclipse.core 
org.eclipse.php.core                   org.tigris.subversion.subclipse.graph 
org.eclipse.php.ui                     org.tigris.subversion.subclipse.ui 

发现了两个: org.eclipse.ui.workbench 和org.eclipse.ui.workbench.texteditor。删了这两个目录,重新启动eclipse。正常启动且原项目信息正确加载。

 

关于 eclipse启动卡死的问题(eclipse上一次没有正确关闭,导致启动的时候卡死错误解决方法),自己常用的解决方法:

      方案一(推荐使用,如果没有这个文件,就使用方案二):

      到<workspace>.metadata.pluginsorg.eclipse.core.resources目录,删除文件 .snap

      方案二:

      进入workspace/.metadata/.plugins/目录
      重命名 org.eclipse.core.resources to org.eclipse.core.resources_old.
      然后重启 eclipse
      Close eclipse
      Delete org.eclipse.core.resources
      Rename org.eclipse.core.resources_old back to org.eclipse.core.resources
      启动 eclipse

再在终端里输入:sudo ln -s /usr/share/eclipse/eclipse eclipse

如上GC日志可以看出,Full GC主要是针对Tenured、Perm区的GC,好那先调整Perm大小,指定充裕的持久代区域,eclipse.ini中加入:

图片 8

帮助

现在用ls命令查看一下是不是出现eclipse文件,如果就用完成了!

1
2
-XX:PermSize=128m
-XX:MaxPermSize=128m

图片 9

再次启动看gc.log,Full GC没有了,但是还有很多次普通GC,说明还是需要进一步优化。
eclipse的初始堆大小分配得很小,因此不利于年轻代堆大小的分配,如果设置的年轻代堆大小Xmn大于最小堆大小Xms,eclipse将无法启动。
因此,将Xms调整为512m,重启动后观察GC大幅减少。
最后调整Xmn,年轻代堆大小,经过反复比较后,发现设置“-Xmn256m”效果最优。
优化后的GC日志:

下面就启动用终端启动eclipse

帮助

图片 10

1
2
3.203: [GC 3.204: [DefNew: 209776K->26176K(235968K), 0.0876304 secs] 209776K->27184K(498112K), 0.0876921 secs] [Times: user=0.09 sys=0.00, real=0.09 secs]
5.422: [GC 5.422: [DefNew: 235968K->12433K(235968K), 0.0989335 secs] 236976K->39296K(498112K), 0.0990229 secs]

图片 11

在接近6秒的启动时间内,eclipse总共只做了2次普通GC回收,怎么样效果明显吧!
一般在不对eclipse进行相关设置的时候,使用eclipse总是会觉得启动好慢,用起来好卡,其实只要对eclipse的相关参数进行一些配置,就会有很大的改善。
加快启动速度
1.在eclipse启动的时候,它总是会搜索让其运行的jre,往往就是这个搜索过程让eclipse启动变慢了。(没设置时,等2-3s出现进度条,设置后直接出现进度条)

只要在eclipse.ini中加入-vm的参数就可以了
图片 12

2.取消所有启动时要激活的插件(在用时激活也一样)和其它的相关的在启动时执行的操作。
图片 13

3.关闭自动更新
图片 14

减少jvm内存回收引起的eclipse卡的问题
这个主要是jvm在client模式,进行内存回收时,会停下所有的其它工作,带回收完毕才去执行其它任务,在这期间eclipse就卡住了。所以适当的增加jvm申请的内存大小来减少其回收的次数甚至不回收,就会是卡的现象有明显改善。

主要通过以下的几个jvm参数来设置堆内存的:

-Xmx512m 最大总堆内存,一般设置为物理内存的1/4
-Xms512m 初始总堆内存,一般将它设置的和最大堆内存一样大,这样就不需要根据当前堆使用情况而调整堆的大小了
-Xmn192m 年轻带堆内存,sun官方推荐为整个堆的3/8
堆内存的组成 总堆内存 = 年轻带堆内存 年老带堆内存 持久带堆内存
年轻带堆内存 对象刚创建出来时放在这里
年老带堆内存 对象在被真正会回收之前会先放在这里
持久带堆内存 class文件,元数据等放在这里
-XX:PermSize=128m 持久带堆的初始大小
-XX:MaxPermSize=128m 持久带堆的最大大小,eclipse默认为256m。如果要编译jdk这种,一定要把这个设的很大,因为它的类太多了。

我的配置(2g内存的笔记本):
图片 15
还有其它的相关参数可以看看下面的参考材料,很有启发的:
-XX: UseParallelGC 使用并发内存回收
-XX: DisableExplicitGC 禁用System.gc()的显示内存回收

eclipse相关设置来来减少卡的现象
1.关闭自动构建。在启用时,每保存一下,eclipse就会自动为我们构建整个项目,这样对于大的项目来说,每次保存时都会造成很卡。其实自动构建完全没有必要,只要保证在运行前构建一次就ok了,eclipse也会在运行前自动为我们构建,所以关闭是最明智的选择。
图片 16

2.关闭拼写检查设置
图片 17

参考材料
jvm启动参数大全:
jvm结构的一些知识(其中的堆的构成):
jvm堆知识:
eclipse启动调优:
eclipse自带的help contents(搜索"Running Eclipse"可以找到启动相关的配置)

本文转自:

本文由星彩网app下载发布于星彩网app下载,转载请注明出处:一闪而过,OS上eclipse卡死问题

TAG标签: 星彩网app下载
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。