`
hadix
  • 浏览: 25618 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

[转载]eclipse.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

PS:不同厂家的jdk垃圾回收算法不一样。在sun的jdk下,Xms和Xmx设置一样,可以减轻伸缩堆大小带来的压力,但在ibm的jdk下面,设置为一样会增大堆碎片产生的几率。

        下面再简单的整理一下优化MyEclipse速度的主要方法:
        1.修改myeclipse.ini。
        2.取消自动validation
        3.勾掉无用插件。
        4.修改启动加载模块


        下面附上详细的优化MyEclipse速度方法:(转载
        http://yufenfei.javaeye.com/blog/376464
        http://blog.csdn.net/defonds/archive/2009/07/10/4338782.aspx
        http://zhangpengshou.javaeye.com/blog/198476
        http://queue19.javaeye.com/blog/488017


原文出处:http://www.blogjava.net/landon/archive/2010/04/26/319402.html

 

分享到:
评论

相关推荐

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

    综上所述,理解并正确配置eclipse.ini文件中的JVM内存参数对于优化Eclipse IDE的性能至关重要。合理设置`-Xms`, `-Xmx`, `-XX:PermSize`, `-XX:MaxPermSize`等参数,能够有效避免内存溢出错误,提高程序的稳定性和...

    java jvm 参数 -Xms -Xmx -Xmn -Xss -

    在JVM中,内存管理是至关重要的,而`-Xms`, `-Xmx`, `-Xmn`, `-Xss`等参数则直接影响着Java应用程序的性能和稳定性。这些参数是用来调整JVM堆内存和线程栈大小的。 1. `-Xms`: 这个参数用于设置JVM启动时初始的堆...

    java_jvm_参数_-Xms_-Xmx_-Xmn_-Xss_调优总结.pdf

    本文档主要介绍Java虚拟机(JVM)中四个重要的参数:`-Xms`、`-Xmx`、`-Xmn` 和 `-Xss` 的含义、作用以及如何通过这些参数来优化JVM的性能。这些参数直接影响到Java应用程序运行时的内存管理策略,合理配置能够显著...

    JVM调优总结 -Xms -Xmx -Xmn -Xss

    -Xmx 设置 JVM 的最大可用内存,-Xms 设置 JVM 的初始内存大小。二者的值可以相同,以避免每次垃圾回收完成后 JVM 重新分配内存。 -Xmn 设置年轻代的大小,整个 JVM 内存大小=年轻代大小 + 年老代大小 + 持久代...

    运行eclipse提示JVM错误的解决

    JVM通过参数`-Xms`和`-Xmx`来控制分配给应用程序的内存。这些参数用于设定堆内存的初始值和最大值: - **-Xms**:设置JVM初始分配的内存,默认为物理内存的1/64。 - **-Xmx**:设置JVM最大分配的内存,默认为物理...

    JVM调优总结 Xms -Xmx -Xmn -Xss

    除了基本的内存参数外,还可以通过其他参数进一步优化JVM的表现: #### 5. -XX:NewRatio - **定义**:设置年轻代和老年代之间的比例。 - **示例**:`-XX:NewRatio=4` 表示年轻代与老年代的比例为1:4,即年轻代占总...

    eclipse指定启动的虚拟机配置说明

    - 关闭并重新启动 Eclipse,此时 Eclipse 将使用您在 `eclipse.ini` 文件中指定的 JVM 及相关参数启动。 ### 总结 通过上述步骤,您可以成功地在 Eclipse 中指定启动的虚拟机配置。这不仅有助于确保 Eclipse 在...

    修改JVM内存

    可以通过注册表或`TomcatW.exe`图形界面调整服务启动时的内存参数,也可以直接在`startup.bat`脚本中添加`JAVA_OPTS='-Xms1024 -Xmx1024m'`或`set JAVA_OPTS=-server -Xms1024m -Xmx1536m -XX:MaxNewSize=1024m -XX:...

    JVM参数-Xms-Xmx-Xmn-Xss-调优总结.docx

    本文主要围绕四个核心JVM参数:-Xms、-Xmx、-Xmn和-Xss进行深入讲解,并结合实际配置示例来阐述其作用和调优策略。 1. `-Xms` 和 `-Xmx`: 这两个参数用于设定JVM堆内存的最小和最大值。例如,`-Xms3550m`表示初始...

    eclipse设置 java内存

    在其中的 Default VM Arguments: 框中输入-Xms128m -Xmx512m,这样设置 Java 虚拟机内存使用最小是 128M,最大是 512M。最后,单击“OK”关闭 Edit JRE 对话框,再单击“OK”关闭 Preferences 对话框。 第二种方法...

    tomcat7安装使用及jvm连接数参数调优

    Tomcat7 的配置主要包括两个方面:一是配置 Tomcat7 的 JVM 参数,二是配置 Tomcat7 的连接数参数。 (一)配置 Tomcat7 的 JVM 参数 Tomcat7 的 JVM 参数配置主要是通过修改 catalina.sh 文件来实现的。具体来说...

    JVM内存配置优化

    可以通过调整JVM参数`-Xms`和`-Xmx`来增加堆内存的初始值和最大值。例如,设置`-Xms2048m -Xmx2048m`可以将堆内存的最小和最大值都设置为2GB。 - **JVM默认堆内存配置**:JVM默认情况下,最小堆内存为物理内存的1...

    Eclipse中JVM内存设置.doc

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

    java虚拟机jvm及Tomcat中的jvm有关内存的设置与调优

    1. **环境变量设置**:通过设置`CATALINA_OPTS`环境变量,可以在系统级别全局地调整Tomcat中JVM的内存参数。 2. **编辑catalina.bat**:在Tomcat的bin目录下,直接修改catalina.bat文件,替换或添加`-Xmx`, `-Xms`,...

    设置Eclipse的JVM参数

    某些情况下,Eclipse安装包中会包含一个启动脚本(如`eclipse`或`eclipse.exe`),可以在这些脚本中添加或修改JVM参数。 #### 五、注意事项 - 在设置JVM参数时,应考虑服务器或工作站的实际内存大小。设置过大的堆...

    解决 Eclipse内存不足的问题

    Eclipse在启动时会分配一定的内存给Java虚拟机使用,这个内存大小由eclipse.ini配置文件控制。当Eclipse运行大型项目或者打开大量文件时,如果初始分配的内存不足,就会触发JVM的垃圾回收机制,甚至可能导致内存溢出...

    eclipse内存溢出报错-解决办法

    3. **调整内存参数**:例如,将初始堆内存设置为128M,最大堆内存设置为512M,永久代初始大小设为64M,最大大小设为128M,可以在eclipse.ini中这样修改: ``` -vmargs -Xms128m -Xmx512m -XX:PermSize=64M -...

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

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

    Eclipse + Tomcat 内存溢出参数设置

    3. **配置Eclipse中的Tomcat JVM参数**:在Eclipse中进一步配置Tomcat的JVM参数,通过`Preferences -> Tomcat -> JVM Settings`,选择`Append to JVM Parameters`选项,并添加`-Xms512m -Xmx1024m -Dcom.sun....

Global site tag (gtag.js) - Google Analytics