java虽然是自动回收内存,但是应用程序,尤其服务器程序最好根据业务情况指明内存分配限制。否则可能导致应用程序宕掉。
举例说明含义:
-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
经验:
1、慎用最小限制选项Xms,PermSize已节约系统资源。
举例说明含义:
-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
经验:
1、慎用最小限制选项Xms,PermSize已节约系统资源。
2、如果 XXMaxPermSize+ Xmx<系统所剩内存时。则eclipse启动不了,报 JVM terminated. Exit code=1
相关推荐
Java JVM 虚拟机选项 Xms Xmx PermSize MaxPermSize 区别 Java JVM 虚拟机选项 Xms Xmx PermSize MaxPermSize 是 Java 虚拟机(JVM)中用于配置内存管理的参数。这些参数控制着 JVM 中的堆内存和非堆内存的分配。 ...
### JVM调优总结:Xms、Xmx、Xmn、Xss 在Java虚拟机(JVM)的运行过程中,合理的参数配置对于提高程序性能至关重要。本文将对JVM调优中的几个关键参数进行深入解析,包括-Xms、-Xmx、-Xmn和-Xss等,帮助开发者更好...
4. 在“Edit JRE”对话框中,输入以下参数:-Xms256m -Xmx512m -XX:PermSize=256m -XX:MaxPermSize=1024m。 5. 点击“Finish”按钮以保存配置。 通过修改myeclipse.ini文件配置jvm虚拟机的内存 myeclipse.ini文件...
JAVA_OPTS="$JAVA_OPTS -server -Xms2048m -Xmx2048m -XX:PermSize=128m -XX:MaxPermSize=256m -Djava.awt.headless=true" ``` - **`-server`**:表示以服务端模式启动JVM,这会带来更好的性能,但启动时间稍长。 -...
JVM的配置参数对于调整性能至关重要,如-Xms、-Xmx用于设置堆内存大小,-XX:PermSize、-XX:MaxPermSize设定方法区大小,-XX:+UseConcMarkSweepGC选择垃圾收集器等。了解这些参数能帮助开发者优化JVM的运行环境。 4...
5. **-XX:PermSize** 和 **-XX:MaxPermSize** (JDK 7及以前版本):设置永久代的初始和最大大小。在JDK 8中,永久代被Metaspace替代,不再受固定大小限制。 #### 实战案例:Tomcat中JVM内存调优 在部署Java Web应用...
### JVM虚拟机面试题知识点详解 #### 一、JVM运行时内存结构 JVM运行时数据区(Runtime Data Area)主要包括以下几部分: 1. **程序计数器(Program Counter Register)**:是一块较小的内存空间,当前线程所执行的...
2. 虚拟机调优:了解JVM参数,如-Xms, -Xmx用于设置堆大小,-XX:PermSize, -XX:MaxPermSize设定方法区大小,以及如何根据应用特性调整这些参数以优化性能。 3. 类加载机制:研究类的生命周期,理解加载、验证、准备...
在`JAVA Options`文本域中新增内存设置,如`-Xms512m -Xmx1536m -XX:PermSize=128M -XX:MaxPermSize=256m -XX:ReservedCodeCacheSize=128m`,同时更新`Initial Memory Pool`和`Maximum Memory Pool`的值。...
JVM内存设置方法 JVM(Java Virtual Machine)是 Java 程序的运行环境,为了提高 Java 程序的性能,需要合理地设置 JVM 的内存分配。下面将详细介绍 JVM 内存设置的方法。 一、 JVM 内存设置参数 JVM 内存设置...
JVM 内存参数是 Java 虚拟机中最重要的参数之一,它直接影响着 Java 应用程序的性能和稳定性。在这个资源中,我们将详细讨论 JVM 内存参数的配置和调优,包括 JVM 的结构、内存管理、垃圾回收、堆和非堆内存、内存...
* 设置 PermSize 和 MaxPermSize:可以使用 JVM 选项 -XX:PermSize 和 -XX:MaxPermSize 来设置 PermGen space 的大小。 * 减少Class数量:在应用中尽量减少Class的数量,避免使用大量的第三方 jar 文件。 * 使用 ...
- `-XX:PermSize` 和 `-XX:MaxPermSize`:设置永久代(JDK 8之前的版本)的初始大小和最大大小。 2. **线程堆栈大小**: - `-Xss`:设置每个线程的堆栈大小。 3. **垃圾回收配置**: - `-XX:+UseParNewGC`:...
JAVA_OPTS="-Xms1024m -Xmx1024m -Xss1024K -XX:PermSize=128m -XX:MaxPermSize=256m" 其中,-Xms1024m 指定了初始堆大小为 1024m,-Xmx1024m 指定了最大堆大小为 1024m,-Xss1024K 指定了每个线程的栈大小为 1024K...
- 例如:`set JAVA_OPTS=-Xms256M -Xmx512M -XX:PermSize=128M -XX:MaxPermSize=256M` - 同样地,在`set CATALINA_OPTS`行也可以设置额外的JVM参数,但通常用于设置特定于Tomcat的选项。 #### 五、案例分析 假设...
非堆内存的初始大小和最大大小可以通过`-XX:PermSize`和`-XX:MaxPermSize`来设置,但需要注意,这些参数在Java 8之后已不再适用,因为永久代已被元空间取代。对于元空间,JVM会根据需要自动调整大小,但可以使用`-XX...
- 参数设置错误,例如`-Xms`大于`-Xmx`,或者`-XX:PermSize`大于`-XX:MaxPermSize`。 - 总内存需求超过了JVM内存的最大限制,这可能受到操作系统或物理内存的约束。 3. **eclipse.ini配置**: 在eclipse.ini文件...
通常情况下,JVM 会自动根据 `-Xms` 和 `-Xmx` 来分配年轻代的大小,但如果设置了 `-Xmn`,则 JVM 会优先使用该值。 4. **`-XX:PermSize`**:设置永久代 (Permanent Generation) 的初始大小。需要注意的是,从 JDK 8...