`
wuhaidong
  • 浏览: 357871 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

解析eclipse.ini参数

阅读更多

eclipse.ini中各个参数的作用

-vmargs  -Xms128m  -Xmx512m  -XX:PermSize=64m  -XX:MaxPermSize=128m

这里有几个问题:

1. 各个参数的含义是什么?

2.为什么有的机器我将-Xmx和-XX:MaxPermSize都设置为512M之后Eclipse 可以启动,而有些机器无法启动?

3.为何将上面的参数写入到eclipse.ini文件Eclipse 没有执行对应得设置?

 

1. 各个参数的含义是什么?

答:参数中-vmargs的意思是设置JVM参数,所有后面的其实都是JVM的参数了,我们首先了解了一下JVM内存管理的机制,然后再解释每个参数代表的含义。堆和非堆内存按照官方的说法:"java虚拟机具有一个堆,堆是运行时数据区域,所有类实现和数组均从此处分配。堆是在java虚拟机启动时创建的。"在JVM中堆之外的内容称为非堆内存。看看出JVM主要管理两种数据的内存:堆和非堆。简单来说堆就是java代码可及的内存,是留给开发人员使用的;非堆就是JVM留给自己用的,所以方法区,JVM内部处理或优化所需的内存(如JIT编译后的代码缓存),每个类结构(如运行时常数池,字段和方法数据)以及方法和构造方法的代码都在飞堆内存中。堆内存分配JVM初始分配的内存由-Xms指定,默认是物理内存的1/64;JVM最大分配的内存由-Xmx指定,默认是物理内存的1/4。默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制;空余堆内存大于70%时,JVM会减少堆直到-Xms的最小限制。因为服务器一般设置-Xms,-Xmx相等以避免在每次GC后调整堆得大小。非堆内存分配JVM使用-XXL:PermSize设置非堆内存初始值,默认是物理内存的1/64;由XX:MaxPermSize设置最大非堆内存的大小,默认是物理内存的1/4。JVM内存限制(最大值)首先JVM内存限制于实际的最大物理内存(废话!呵呵),假设物理内存无限大的话,JVM内存的最大值跟操作系统很大的关系。简单的说32位处理器虽然看控内存空间有4GB,但是具体的操作系统会给一个限制,这个现实一般2GB-3GB(一般来说Windows系统下位1.5G-2G,Linux系统下为2G-3G),而64bit以上的处理器就不会有限制了。

 

 

2. 为什么有的机器我将-Xmx 和 -XX:MaxPermSize 都设置为512M之后Eclipse可以启动,而有些机器无法启动?

答:通过上面对JVM内存管理的介绍我们已经了解到JVM内存包含两种:堆内存和非堆内存,另外JVM最大内存首先取决于实际的物理内存和操作系统。所以说设置JVM参数导致程序无法启动主要有以下几种原因:

1)参数中-Xms的值大于-Xmx,或者-XX:PermSize的值大于-XX:PermSize;

2)-Xmx的值和-XX:MaxPermSize的总和超过了JVM内存的最大限制,比如当前操作系统最大内存限制,或者实际的物理内存等等。说到实际物理内存整理需要说明一点的是,如果你的内存是1024MB,但实际系统中用到的并不可能是1024MB,因为有一部分被硬件占用了。

 

 

3. 为何将上面的参数写入到eclipse.ini 文件Eclipse 没有执行对应的设置?那为射门同样的参数在快捷方式或者命令行中有效而eclipse.ini文件中是无效的呢?

答:这里因为我们没有遵守eclipse.ini 文件的设置规则:参数形如"项值"这种形式,中间有空格的需要换行书写,如果值中有空格的需要用双引号包括起来。比如我们使用-vm C:\java\jre 1.6.0\bin\javaw.exe参数设置虚拟机,在eclipse.ini文件中要写成这样:

-vm

C:\Java\jre1.6.0\bin\javaw.exe

按照上面所说的,最后参数在eclipse.ini中可以写出这个样子:-vmargs -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M 实际运行的结果可以通过Eclipse中“Help”-“About Eclipse SDK”窗口里面的“Configuration Details”按钮进行查看。

  另外需要说明的是,Eclipse压缩包中自带的eclipse.ini文件内容是这样的: -showsplash org.eclipse.platform --launcher.XXMaxPermSize 256m -vmargs -Xms40m -Xmx256m 其中–launcher.XXMaxPermSize(注意最前面是两个连接线)跟-XX:MaxPermSize参数的含义基本是一样的,我觉得唯一的区别就是前者是eclipse.exe启动的时候设置的参数,而后者是eclipse所使用的JVM中的参数。其实二者设置一个就可以了,所以这里可以把–launcher.XXMaxPermSize和下一行使用#注释掉。

 

 

4.其他的启动参数。如果你有一个双核的CPU,也许可以尝试这个参数:

 -XX:UseParallelGC

 让GC可以更快的执行。(只是JDK5 里对GC新添加的参数)

 

 

 

分享到:
评论

相关推荐

    eclipse.ini内存设置各参数含义

    在深入探讨《eclipse.ini内存设置各参数含义》这一主题之前,我们首先应当明确eclipse.ini文件在Eclipse集成开发环境中的重要性及其如何通过调整内存配置参数来优化Eclipse的运行性能。以下是对该主题的详细解析: ...

    基于eclipse.ini内存设置的问题详解

    Eclipse通过配置文件eclipse.ini来设置Java虚拟机(JVM)的内存参数,从而达到提高开发效率和避免内存溢出的目的。本文将详细探讨eclipse.ini中常见的内存设置问题,包括参数含义、内存分配、以及如何正确设置。 1....

    myeclipse.ini

    ### myeclipse.ini 文件解析与知识点详解 #### 一、myeclipse.ini 文件概述 `myeclipse.ini` 是 MyEclipse 启动时读取的配置文件之一,用于设置 MyEclipse 的运行参数,包括 JVM(Java Virtual Machine)参数等。...

    设置Eclipse的JVM参数

    #### 三、关键JVM参数解析 - **-Xms128m**:设置JVM的初始堆内存大小为128MB。这是JVM启动时分配给堆内存的最小值,有助于减少JVM启动初期由于堆内存过小导致的频繁垃圾回收。 - **-Xmx712m**:设置JVM的最大堆...

    Eclipse中JVM内存设置.doc

    在"Eclipse中JVM内存设置"的主题下,我们需要关注几个关键的JVM参数及其作用,以及如何在eclipse.ini文件中进行有效配置。 1. **JVM内存参数含义**: - `-Xms`:设置JVM启动时的初始堆内存大小,例如`-Xms128M`...

    eclipse 配置文件

    - `config.ini`:位于`configuration/config.ini`,这是Eclipse的主要配置文件,定义了启动参数、JVM设置等。 - `.log`:记录Eclipse运行时的日志信息,有助于排查问题。 - `.plugins`目录:包含各个插件的配置...

    eclipse虚拟缓存处理

    本文将详细解析如何通过调整Eclipse的虚拟缓存,解决其启动问题,确保软件运行流畅。 ### 一、理解Eclipse内存设置 Eclipse在运行时需要占用一定量的系统内存,以支持其复杂的编辑、编译、调试等功能。内存设置...

    eclipse加载lombok

    - 检查 `eclipse.ini` 文件是否包含 `-javaagent` 参数。 - 重启 Eclipse 并清理项目。 - **IDEA 用户如何使用 Lombok**: - IDEA 用户也可以通过安装 Lombok 插件来支持 Lombok。在 IDEA 中搜索并安装 Lombok ...

    eclipse-standard-kepler-SR1-win32

    - `config.ini`:配置文件,定义了Eclipse的启动参数和环境设置。 - `eclipse.ini`:主配置文件,用于指定JVM参数和其他启动选项。 - `readme.txt` 或类似的文档:提供版本信息和安装指南。 6. **Eclipse的特点*...

    eclipse-SDK-3.1.1-linux-motif.tar.gz

    《Eclipse SDK 3.1.1 for Linux Motif:深度解析与应用指南》 Eclipse SDK 3.1.1 是一个针对Linux环境的开源集成开发环境(IDE),其核心是Eclipse平台,该平台提供了丰富的软件开发工具集。"linux-motif"这个标签...

    eclipse内存优化

    2. **eclipse.ini配置**:正确配置eclipse.ini文件中的参数至关重要。每项参数应独立一行,且如值中包含空格,应使用双引号括起。例如,正确格式为: ``` -vmargs -Xms128M -Xmx512M -XX:PermSize=64M -XX:...

    eclipse neon版4.6-64位

    - **eclipse.ini**:Eclipse的启动配置文件,用于设置JVM参数、工作空间等。 - **下载说明.txt**:提供下载和安装的指导说明,帮助用户正确操作。 - **dropins**:用户可以将额外的插件或更新放到此目录,Eclipse...

    详细品味eclipse性能优化

    可以在配置文件`eclipse.ini`中调整启动参数,例如通过`-clearPersistedState`选项清空工作区状态,或者使用`-pluginCustomization`指令禁用不需要的插件。 2. **内存配置**:合理配置JVM内存参数也是关键。同样在`...

    eclipse-cpp-2022-12-R-linux-gtk-x86-64.tar.gz

    同时,通过修改"eclipse.ini"配置文件,可以定制Eclipse的启动参数,例如调整JVM内存分配、设定默认工作空间等。 Eclipse的C++开发涉及到的其他重要概念包括CDT(C/C++ Development Tools),这是一个Eclipse插件,...

    Eclipse初始安装配置及常见问题总结

    1. **内存优化**:编辑eclipse.ini文件,调整-Xms和-Xmx参数,以匹配项目规模和个人电脑配置。初始化内存和最大可用内存的合理设置对于避免频繁的垃圾回收和内存溢出至关重要。 2. **插件优化**:对于不常用的插件...

    eclipse-java-2022-09-R-win32-x86-64.zip

    3. `config.ini` 文件:这个配置文件定义了Eclipse的启动参数和设置,可以根据需要进行修改以定制你的开发环境。 4. `dropins` 目录:用于自动安装和管理Eclipse插件,你可以将下载的插件放到这个目录下,Eclipse会...

    eclipse问题解决

    可以通过修改`eclipse.ini`中的`-vm`参数来指定JDK的路径。 #### 2. 编译错误:无法解析符号 **问题描述**:在编写Java代码时,经常会遇到“无法解析符号”这样的编译错误,这通常是由于类或方法未被正确导入所致...

    MyEclipse内存不足谈谈JVM内存

    为何将上面的参数写入到eclipse.ini文件后Eclipse没有执行对应的设置? 这通常是由于以下几个原因造成的: - **配置错误**:确保参数的格式正确无误,并且位于eclipse.ini文件中的正确位置。例如,JVM参数应放在`...

    eclipse启动时间源码

    《Eclipse启动时间源码解析与Java虚拟机调优》 Eclipse作为一款广受欢迎的Java集成开发环境,其启动速度对于开发者来说至关重要。当我们打开Eclipse时,它需要加载大量的插件、配置以及工作空间信息,这都会影响...

    CAS之Eclipse集成开发环境搭建[收集].pdf

    - 修改Eclipse.ini文件,添加`-vm`参数以指向JDK。 - 重新启动Eclipse解决警告问题。 **7. 在Eclipse中添加JDK路径:** - 通过`Windows > Preferences > Java > Installed JREs`添加JDK路径。 **8. 生成Eclipse项目...

Global site tag (gtag.js) - Google Analytics