配置eclipse.ini、jvm参数配置说明、解决eclipse卡死问题、eclipse内存配置

起因

win8.1、双核CPU、16G内存,装eclipse以后报错非常诡异,有时候开俩仨eclipse妥妥的没事,有时开一个就卡的不可描述,假死

解决方案

step1、修改eclipse.ini参数,扩大JVM的内存(能解决一部分人的问题,然而对我并没有什么卵用)

  1. - XX:MaxPermSize=4096M
  2. - Xms256m
  3. - Xmx4096m
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

step2、设置并行GC(最低是双核cpu,好用了一点)

-XX:+UseParallelGC
  • 1
  • 1

step3、设置默认虚拟机(重中之重

  1. -vm
  2. D: \jdk 1 .8 .0_25 \bin \javaw .exejrejavaw .exe的绝对地址,依据 jdk安装位置变动)
  • 1
  • 2
  • 1
  • 2

eclipse.ini环境示例

  1. - startup
  2. plugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar
  3. - -launcher.library
  4. plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.200.v20140603-1326
  5. - product
  6. org.eclipse.epp.package.jee.product
  7. - -launcher.defaultAction
  8. openFile
  9. - showsplash
  10. org.eclipse.platform
  11. - -launcher.XXMaxPermSize
  12. 768m
  13. - -launcher.defaultAction
  14. openFile
  15. - vm
  16. D:\jdk1.8.0_25\bin\javaw.exe
  17. - -launcher.appendVmargs
  18. - vmargs
  19. - Dosgi.requiredJavaVersion=1.5
  20. - XX:MaxPermSize=4096M
  21. - Xms256m
  22. - Xmx4096m
  23. - XX:+UseParallelGC


结果

问题解决、使用流畅、一本满足


原因分析

从官方文档等是可以找到原因的,eclipse.ini官方说明eclipse.ini官方参数说明JVM参数优化

eclipse.ini放置在eclipse安装文件夹的根目录下,是控制eclipse启动的text文件。在里面默认设置了eclipse的几项启动参数,可直接增删改查文件设置eclipse的启动参数,缺省参数eclipse会设置默认值,如没有设置JVM位置则eclipse会使用系统默认的VM。 
重要参数如下:

参数 说明 默认值
-vmargs 没有默认值设置,仅表示后面都是JVM参数,前面的是eclipse参数  
-XX:MaxPermSize=128m JVM初始分配的最大非堆内存,这里官方标示不能在所有平台上检测到JVM 默认为128M或缺省(缺省值和-server -client选项相关。-server选项下默认MaxPermSize为64m;-client选项下默认MaxPermSize为32m),按需分配。一般设置为最大堆内存的1/4,但是过小会导致内存溢出
-Xms40m 设置JVM Heap(堆内存)最小值 默认为40M,初始分配
-Xmx512m 设置JVM Heap(堆内存)最大值 默认为512M,按需分配,过小会导致内存溢出,JVM报错,无法用try catch捕捉

这里有一句话非常重要,就是并不能在所有平台上都能检测到JVM虚拟机,需要我们告诉eclipse本地虚拟机的位置。

在官方资料上也特别说明了这一点:

One of the most recommended options to use is to specify a specific JVM for Eclipse to run on. Doing this ensures that you are absolutely certain which JVM Eclipse will run in and insulates you from system changes that can alter the "default" JVM for your system. Many a user has been tripped up because they thought they knew what JVM would be used by default, but they thought wrong. eclipse.ini lets you be CERTAIN.
  • 1
  • 1

翻译:官方推荐在eclipse运行时设置一个特定的JVM,这样可以确保JVM是eclipse的默认虚拟机。很多用户错误的认为JVM是默认虚拟机,然而事实并非如此。用户可通过eclipse.ini来修正虚拟机。

经查证,window下指定JVM需要设置-vm参数,例:

  1. -vm
  2. C: \jdk 1 .7 .0_21 \bin \javaw .exe
  • 1
  • 2
  • 1
  • 2
-vm C:\jdk1.7.0_21\jre\bin\java.exe
  • 1
  • 1
  1. -vm
  2. C: \Development \Java\64 bit \jdk 1 .7 .0_09 \jre \bin \server \jvm .dll
  • 1
  • 2
  • 1
  • 2

指定的位置应该是本地Java运行环境/bin目录/java程序或ava共享库(jvm.dll或libjvm.so)的绝对地址。eclipse和JVM的位数必须相同,即32位eclipse配置32位JVM,64位eclipse配置64位JVM,交叉不能运行。

重要的tips

tips1: 
设置最大最小JVM内存也和系统的位数有关,32位系统下,一般限制在1.5G~2G;64位操作系统对内存无限制。 
tips2: 
初始分配的堆内存由-Xms指定,默认是物理内存的1/64; 
最大分配的堆内存由-Xmx指定,默认是物理内存的1/4; 
最大非堆内存的大小由–XX:MaxPermSize设置,默认是物理内存的1/4

猜你喜欢

转载自blog.csdn.net/qq_37954693/article/details/80985285
今日推荐