`
dyllove98
  • 浏览: 1397285 次
  • 性别: Icon_minigender_1
  • 来自: 济南
博客专栏
73a48ce3-d397-3b94-9f5d-49eb2ab017ab
Eclipse Rcp/R...
浏览量:38849
4322ac12-0ba9-3ac3-a3cf-b2f587fdfd3f
项目管理checkList...
浏览量:79701
4fb6ad91-52a6-307a-9e4f-816b4a7ce416
哲理故事与管理之道
浏览量:132770
社区版块
存档分类
最新评论

java的内存设置 Xms Xmx PermSize MaxPermSize区别

阅读更多

这两天一个java程序在aix系统下面设置 -Xms128m -Xmx512m 内存限制之后发现内存还是不停地增长,window下面就没有问题,应该aix下面少设置参数的原因.

正好借此机会回顾一下java内存限制的几个参数的具体含义



-Xms128m  表示JVM Heap(堆内存)最小尺寸128MB,初始分配
-Xmx512m  表示JVM Heap(堆内存)最大允许的尺寸256MB,按需分配。

说明:如果-Xmx不指定或者指定偏小,应用可能会导致java.lang.OutOfMemory错误

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

更多内存信息请查看

java进阶   http://www.javady.com/index.php/category/javavm

10
11
分享到:
评论
8 楼 if(i!=我){} 2012-05-14  
调优的两大目的:防止溢出和频繁的FullGC,当然有时候要考虑资源浪费问题。
7 楼 if(i!=我){} 2012-05-14  
另外新生代、老年代和持久代的大小默认也是根据堆大小按比例划分的。
6 楼 if(i!=我){} 2012-05-14  
su1216 写道
引用
说明:如果-Xmx不指定或者指定偏小,应用可能会导致java.lang.OutOfMemory错误,此错误来自JVM不是Throwable的,无法用try...catch捕捉


首先OutOfMemory是继承Throwable的
其次,他是可以被捕获的

su1216 写道
引用
说明:如果-Xmx不指定或者指定偏小,应用可能会导致java.lang.OutOfMemory错误,此错误来自JVM不是Throwable的,无法用try...catch捕捉


首先OutOfMemory是继承Throwable的
其次,他是可以被捕获的

说的很对~
5 楼 if(i!=我){} 2012-05-14  
说明:如果-Xmx不指定或者指定偏小,应用可能会导致java.lang.OutOfMemory错误

这句话写的有点不明不白啊,不指定的时候有默认大小。
默认最大堆大小为物理内存的1/4。
默认起始堆大小为物理内存的1/16。
4 楼 su1216 2012-05-14  
引用
说明:如果-Xmx不指定或者指定偏小,应用可能会导致java.lang.OutOfMemory错误,此错误来自JVM不是Throwable的,无法用try...catch捕捉


首先OutOfMemory是继承Throwable的
其次,他是可以被捕获的
3 楼 dyllove98 2012-05-14  
122829827 写道
可以写的再详细些。。。

临时写了写,太忙了,没时间整理这些东西..
2 楼 122829827 2012-05-14  
可以写的再详细些。。。
1 楼 mixer_a 2012-05-14  
平常一直使用 -Xms128m -Xmx512m 内存限制,其他的倒是不怎么使用.

相关推荐

    认识 java JVM虚拟机选项 Xms Xmx PermSize MaxPermSize 区别

    Java JVM 虚拟机选项 Xms Xmx PermSize MaxPermSize 区别 Java JVM 虚拟机选项 Xms Xmx PermSize MaxPermSize 是 Java 虚拟机(JVM)中用于配置内存管理的参数。这些参数控制着 JVM 中的堆内存和非堆内存的分配。 ...

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

    本文将对JVM调优中的几个关键参数进行深入解析,包括-Xms、-Xmx、-Xmn和-Xss等,帮助开发者更好地理解这些参数的作用及如何合理设置。 #### 1. -Xms(Initial Heap Size) - **定义**:设置JVM启动时初始分配给堆...

    修改JVM内存

    在`JAVA Options`文本域中新增内存设置,如`-Xms512m -Xmx1536m -XX:PermSize=128M -XX:MaxPermSize=256m -XX:ReservedCodeCacheSize=128m`,同时更新`Initial Memory Pool`和`Maximum Memory Pool`的值。...

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

    ### Java虚拟机(JVM)内存设置与调优详解 #### 引言 在现代软件开发中,Java虚拟机(JVM)作为执行Java字节码的核心组件,其性能直接影响到Java应用的运行效率与稳定性。特别是在大数据处理场景下,合理设置JVM内存...

    JAVA内存溢出

    例如,在Tomcat6.0中,在catalina.sh或catalina.bat文件中增加一行:JAVA_OPTS=" -XX:PermSize=64M -XX:MaxPermSize=128m"如果是Windows服务器还可以在系统环境变量中设置。 2. 清理应用程序中WEB-INF/lib下的jar,...

    JAVA-OPTS参数设置.docx

    这个值和 -Xms 的值同步设置,建议均设为物理内存的一半。 4. -XX:PermSize:设定内存的永久保存区域大小。 5. -XX:MaxPermSize:设定最大内存的永久保存区域大小。 6. -XX:MaxNewSize:young generation 的 heap...

    Java 内存溢出解决办法

    在上述例子中,增大了这些值,如 `-Xms256m -Xmx512m -XX:PermSize=256m -XX:MaxPermSize=600m`,可以有效地增加Java程序可用的内存。 2. 优化代码:避免创建不必要的大量对象,减少内存消耗。例如,合理使用对象池...

    Java内存溢出的详细解决方案

    * 设置 PermSize 和 MaxPermSize:可以使用 JVM 选项 -XX:PermSize 和 -XX:MaxPermSize 来设置 PermGen space 的大小。 * 减少Class数量:在应用中尽量减少Class的数量,避免使用大量的第三方 jar 文件。 * 使用 ...

    java内存泄漏解决

    - **优化堆内存分配**:根据实际需求调整`-Xms`和`-Xmx`参数,确保两者接近或相等,避免频繁的垃圾回收。 - **调整新生代大小**:通过`-XX:NewRatio`和`-XX:SurvivorRatio`参数调整新生代与老年代的比例。 2. **...

    tomcat6.0 修改启动内存设置 java jvm参数配置

    ### Tomcat 6.0 修改启动内存设置及 Java JVM 参数配置详解 #### 一、背景与目的 在部署和运行 Java Web 应用时,合理地配置应用服务器(如 Apache Tomcat)的内存是非常重要的。这不仅可以提升应用程序的性能,还...

    JVM内存设置方法.docx

    JVM内存设置方法 JVM(Java Virtual Machine)是 Java 程序的运行环境,为了提高 Java 程序的性能,需要合理地设置 JVM 的内存分配。下面将详细介绍 JVM 内存设置的方法。 一、 JVM 内存设置参数 JVM 内存设置...

    Java内存监控工具Java VisualVM

    set JAVA_OPTS=-server-Xms1024m-Xmx1024m-XX:PermSize=128m-XX:MaxPermSize=256m-XX:MaxNewSize=256m- -Dcom.sun.management.jmxremote.port=8999-Dcom.sun.management.jmxremote.authenticate=false- -Dcom.sun....

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

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

    解决JAVA内存溢出问题

    为了确保JVM运行时内存稳定,通常建议将初始堆内存和最大堆内存设置为相同的值或接近的值。 #### `-XX:PermSize=64M` 和 `-XX:MaxPermSize=256M` 这两个参数分别用于设置方法区的初始大小和最大大小。`-XX:...

    Eclipse中JVM内存设置.doc

    在使用Eclipse这样的Java开发工具时,正确配置JVM内存设置是非常重要的,因为它直接影响到Eclipse的稳定性和性能。在"Eclipse中JVM内存设置"的主题下,我们需要关注几个关键的JVM参数及其作用,以及如何在eclipse....

    JAVA内存模型与垃圾回收

    3. **内存大小配置**:JVM提供了各种参数来调整内存区域的大小,如 `-Xms` 和 `-Xmx` 分别设置堆的初始和最大大小,`-Xmn` 设置年轻代大小,`-XX:NewRatio` 和 `-XX:SurvivorRatio` 用于调整年轻代与老年代的比例,...

Global site tag (gtag.js) - Google Analytics