您的位置:首页 > 编程语言 > Java开发

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

2016-12-02 18:02 561 查看


起因

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


解决方案

step1、修改eclipse.ini参数,扩大JVM的内存(能解决一部分人的问题,然而对我并没有什么卵用)
-XX:MaxPermSize=4096M
-Xms256m
-Xmx4096m
1
2
3
1
2
3

step2、设置并行GC(最低是双核cpu,好用了一点)
-XX:+UseParallelGC
1
1

step3、设置默认虚拟机(重中之重)
-vm
D:\jdk1.8.0_25\bin\javaw.exe(jre下javaw.exe的绝对地址,依据jdk安装位置变动)
1
2
1
2


eclipse.ini环境示例

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


结果

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


原因分析

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

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

重要参数如下:
参数说明默认值
-vmargs没有默认值设置,仅表示后面都是JVM参数,前面的是eclipse参数 
-XX:MaxPermSize=128mJVM初始分配的最大非堆内存,这里官方标示不能在所有平台上检测到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参数,例:
-vm
C:\jdk1.7.0_21\bin\javaw.exe
1
2
1
2
-vm C:\jdk1.7.0_21\jre\bin\java.exe
1
1
-vm
C:\Development\Java\64bit\jdk1.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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息