优化MyEclipse的速度,要明白其中的道理:myeclipse.ini文件中参数-Xms,-Xmx,-PerSize的值时,这几个参数具体是指什么?
这涉及到JVM的内存管理机制。
1.堆(Heap)和非堆(Non-heap)内存
按照官方的说法:“Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在 Java 虚拟机启动时创建的。”“在JVM中堆之外的内存称为非堆内存(Non-heap memory)”。可以看出JVM主要管理两种类型的内存:堆和非堆。简单来说堆就是Java代码可及的内存,是留给开发人员使用的;非堆就是JVM留给自己用的,所以方法区、JVM内部处理或优化所需的内存(如JIT编译后的代码缓存)、每个类结构(如运行时常数池、字段和方法数据)以及方法和构造方法的代码都在非堆内存中。
2.堆内存分配
JVM初始分配的内存由-Xms指定,默认是物理内存的1/64;JVM最大分配的内存由-Xmx指定,默认是物理内存的1/4。默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制;空余堆内存大于70%时,JVM会减少堆直到-Xms的最小限制。因此服务器一般设置-Xms、-Xmx相等以避免在每次GC 后调整堆的大小。
3.非堆内存分配
JVM使用-XX:PermSize设置非堆内存初始值,默认是物理内存的1/64;由XX:MaxPermSize设置最大非堆内存的大小,默认是物理内存的1/4。
4.JVM内存限制(最大值)
首先JVM内存限制于实际的最大物理内存,假设物理内存无限大的话,JVM内存的最大值跟操作系统有很大的关系。简单的说就32位处理器虽然可控内存空间有4GB,但是具体的操作系统会给一个限制,这个限制一般是2GB-3GB(一般来说Windows系统下为1.5G-2G,Linux系统下为2G-3G),而64bit以上的处理器就不会有限制了。
举例说明含义:
-Xms128m 表示JVM Heap(堆内存)最小尺寸128MB,初始分配
-Xmx512m 表示JVM Heap(堆内存)最大允许的尺寸256MB,按需分配。
说明:如果-Xmx不指定或者指定偏小,应用可能会导致java.lang.OutOfMemory错误,此错误来自JVM不是Throwable的,无法用try...catch捕捉。
PermSize和MaxPermSize指明虚拟机为java永久生成对象(Permanate generation)如,class对象、方法对象这些可反射(reflective)对象分配内存限制,这些内存不包括在Heap(堆内存)区之中。
-XX:PermSize=64MB 最小尺寸,初始分配
-XX:MaxPermSize=256MB 最大允许分配尺寸
按需分配过小会导致:java.lang.OutOfMemoryError: PermGen space MaxPermSize缺省值和-server -client选项相关。
-server选项下默认MaxPermSize为64m
-client选项下默认MaxPermSize为32m
相关推荐
- 打开`D:\Program Files\MyEclipse6.5\eclipse\eclipse.ini`文件。 - 添加 `-Duser.language=zh` 参数(如果已存在其他语言参数,请替换掉)。 - 保存文件后重启MyEclipse即可。 #### 四、常见问题解答 1. **...
在使用myEclipse6.5的过程中,可能会遇到启动失败或者在使用过程中无故崩溃自动关闭的问题。这种情况往往与Java虚拟机(JVM)配置不当有关。下面将详细介绍如何解决这些问题。 #### 一、问题背景 myEclipse是一款...
通过修改`eclipse.ini`文件中的配置参数,可以进一步提升MyEclipse的性能。例如,增加JVM的最大内存分配空间: 1. **路径**:MyEclipse安装目录下的`eclipse.ini`文件。 2. **操作**: - 删除或注释掉`-clean`和`-...
通过修改`eclipse.ini`文件中的JVM参数,可以显著提高MyEclipse的性能: 1. 增加堆内存大小:`-Xms128m -Xmx512m`。 2. 设置永久代大小:`-XX:PermSize=128M -XX:MaxPermSize=256M`。 3. 启用并行垃圾回收:`-XX:+...
4. 更新MyEclipse版本:新版本的MyEclipse可能对内存管理进行了优化,可以考虑升级。 5. 关闭不必要的功能:例如,关闭自动构建或实时预览等内存消耗较大的功能。 在解决MyEclipse内存不足问题的过程中,一定要注意...
为了确保MyEclipse启动时使用正确的语言设置,可以在`eclipse.ini`文件中添加相应的参数。具体步骤如下: 1. **打开`eclipse.ini`文件** - 打开安装目录下的`eclipse.ini`文件(默认位于`D:\Program Files\...
1. **编辑配置文件:** 打开`D:\Program Files\MyEclipse 6.5\eclipse\eclipse.ini`文件。 2. **删除相关参数:** 查找并删除或注释掉`-Duser.language=en`这一行。 3. **重新启动MyEclipse:** 保存并关闭文件后,...
- 使用文本编辑器打开该文件,在末尾添加以下参数以设置中文环境: ```ini -Duser.language=zh_CN -Duser.country=CN ``` - 保存并关闭文件后,再次启动 MyEclipse 即可看到界面已切换为中文显示。 #### 四、...
4. **替换eclipse.ini**:同时,还需要替换或修改`MyEclipse6.5`目录下的`eclipse.ini`文件。这个文件是MyEclipse的启动配置文件,可能需要添加或调整某些参数来确保汉化包的正常运行。 5. **复件eclipseini**:...
#### 二、优化MyEclipse内存管理的策略 接下来,我们将逐一介绍具体的优化措施: ##### 1. 关闭自动更新检查 在启动时,MyEclipse会自动检查是否有新的特性更新,这个过程会消耗一定的时间和资源。可以通过以下...
5. **调整JVM内存设置**:修改MyEclipse安装目录下的`myeclipse.ini`文件,增加JVM的非堆内存分配,例如 `-Xms256m -Xmx512m -XX:PermSize=128M -XX:MaxPermSize=256m -XX:ReservedCodeCacheSize=64m`。这将有助于...
总之,通过修改`eclipse.ini`文件中的`-splash`参数,你可以轻松实现MyEclipse启动界面的个性化定制,让开发环境更加符合个人喜好。同时,这也是对软件配置文件理解的一个实例,对于提升开发者技能和了解IDE内部机制...
- 确认系统的环境变量中没有设置与语言相关的参数,如`LANG`或`LC_ALL`等,这些参数可能会影响到IDE的默认语言设置。 3. **清理缓存** - 清除MyEclipse的临时文件夹中的缓存数据,可以通过`Help` -> `About ...
在开发过程中,我们常常需要更改MyEclipse的工作路径,以便更好地管理和组织项目。本文将详细介绍四种修改MyEclipse工作路径的方法,并确保至少有一种方法可以生效。 #### 方法一:通过“启动与关闭”设置进行修改 ...
1. **修改eclipse.ini文件**: - 打开`eclipse.ini`文件。 - 在`-vmargs`行下添加或修改`-XX:MaxPermSize`和`-XX:PermSize`参数。 - 设置合适的内存值,例如`-XX:MaxPermSize=512M`和`-XX:PermSize=512M`。 - ...
找到位于`D:\Program Files\MyEclipse6.5\eclipse\`目录下的`eclipse.ini`文件,编辑其中的`-Duser.language`参数,将其更改为对应的语言代码,如“zh_CN”代表简体中文,保存后重新启动MyEclipse即可看到界面已汉化...
这个文件位于Eclipse的安装目录下,例如在Windows系统中,可能是`C:\Program Files\MyEclipse 6.5M1 Blue\eclipse`。打开这个文件,找到相关参数进行修改。如描述中所示,你需要确保`eclipse.ini`包含以下内容: ``...