`
darkma
  • 浏览: 526179 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类

JVM 内存参数说明及调整

阅读更多

JVM内存相关的参数及其说明

JVM 堆内存(heap)设置选项

参数格式

   

设置新对象生产堆内存(Setting the Newgeneration heap size

-XX:NewSize

通过这个选项可以设置Java新对象生产堆内存。在通常情况下这个选项的数值为1 024的整数倍并且大于1MB。这个值的取值规则为,一般情况下这个值-XX:NewSize是最大堆内存(maximum heap size)的四分之一。增加这个选项值的大小是为了增大较大数量的短生命周期对象

增加Java新对象生产堆内存相当于增加了处理器的数目。并且可以并行地分配内存,但是请注意内存的垃圾回收却是不可以并行处理的

续表 

JVM 堆内存(heap)设置选项

参数格式

   

设置最大新对象生产堆内存(Setting the maximum New generation heap size

-XX:MaxNewSize

通过这个选项可以设置最大Java新对象生产堆内存。通常情况下这个选项的数值为1 024的整数倍并且大于1MB

其功用与上面的设置新对象生产堆内存-XXNewSize相同

设置新对象生产堆内存的比例(Setting New heap size ratios

-XX:SurvivorRatio

新对象生产区域通常情况下被分为3个子区域:伊甸园,与两个残存对象空间,这两个空间的大小是相同的。通过用-XX:SurvivorRatio=X选项配置伊甸园与残存对象空间(Eden/survivor)的大小的比例。你可以试着将这个值设置为8,然后监控、观察垃圾回收的工作情况

设置堆内存池的最小值

Setting minimum heap size

-Xms

通过这个选项可以要求系统为堆内存池分配内存空间的最小值。通常情况下这个选项的数值为1 024的整数倍并且大于1MB。这个值的取值规则为,一般情况下这个值(-Xms)与最大堆内存相同,以降低垃圾回收的频度

设置堆内存池的最大值(Setting maximum heap size

-Xmx

通过这个选项可以要求系统为堆内存池分配内存空间的最大值。通常情况下这个选项的数值为1 024的整数倍并且大于1 MB

一般情况下这个值(-Xmx)与最小堆内存(minimum heap size –Xms)相同,以降低垃圾回收的频度

取消垃圾回收

-Xnoclassgc

这个选项用来取消系统对特定类的垃圾回收。它可以防止当这个类的所有引用丢失之后,这个类仍被引用时不会再一次被重新装载,因此这个选项将增大系统堆内存的空间

设置栈内存的大小

-Xss

这个选项用来控制本地线程栈的大小,当这个选项被设置的较大(>2MB)时将会在很大程度上降低系统的性能。因此在设置这个值时应该格外小心,调整后要注意观察系统的性能,不断调整以期达到最优

根据表2-1中所描述的参数意义,我们可以在启动应用时为JVM设置相应的参数值以提高系统的性能,例如下面的例子:

java -XX:NewSize=128m -XX:MaxNewSize=128m -XX:SurvivorRatio=8  -Xms512m

-Xmx512m MyApplication

分享到:
评论

相关推荐

    JVM内存参数详解以及配置调优

    同时,需要根据实际情况调整 JVM 的内存参数,以确保应用程序的性能和稳定性。 本资源详细讨论了 JVM 内存参数的配置和调优,包括 JVM 的结构、内存管理、垃圾回收、堆和非堆内存、内存分配和限制等方面,为开发...

    jvm内存参数调优

    ### JVM内存参数调优详解 #### 一、概述 Java虚拟机(JVM)是执行Java字节码的软件环境,为了提高Java程序的性能和稳定性,合理调整JVM的内存参数至关重要。根据Java启动参数的不同分类,我们可以将其分为标准参数...

    JVM内存溢出问题解析

    二是物理解决,增大物理内存,然后通过调整 JVM 的参数来调整内存的大小。 JVM 内存溢出类型有两种:java.lang.OutOfMemoryError: PermGen space 和 java.lang.OutOfMemoryError: Java heap space。PermGen space ...

    JVM内存参数调优

    ### JVM内存参数调优 在Java开发过程中,合理地配置JVM(Java虚拟机)的内存参数对于提高程序运行效率、避免内存溢出等问题至关重要。本文将深入探讨JVM内存参数调优的相关知识点,帮助开发者更好地理解并掌握如何...

    JVM内存空间分配笔记

    ### JVM内存空间分配详解 #### 一、JVM内存模型概览 JVM(Java虚拟机)内存模型主要由以下几个部分组成:程序计数器、Java虚拟机栈、本地方法栈、Java堆以及方法区(在JDK 8之后称为元空间)。下面将对这几个部分...

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

    在调整 Tomcat 的内存设置之前,我们需要了解一些基本的 JVM 内存参数: 1. **`-Xms`**:设置 JVM 启动时的初始堆内存大小。 2. **`-Xmx`**:设置 JVM 运行时的最大堆内存大小。 3. **`-Xmn`**:设置年轻代 (Young ...

    JVM内存配置优化

    ### JVM内存配置优化 #### 一、理解JVM内存模型 在进行JVM内存配置优化之前,我们需要了解Java虚拟机(JVM)的内存结构。Java的逻辑内存模型大致分为几个部分: 1. **堆内存(Heap)**:主要用于存储对象实例、数组...

    idea插件JVM内存工具JProfiler11

    5. **JVM配置调整**:JProfiler11还可以提供JVM参数建议,帮助开发者正确设置JVM初始堆大小、最大堆大小、内存池等关键参数,确保应用程序稳定运行。 在实际使用中,JProfiler11的详细报告和可视化界面使得问题定位...

    JVM 内存结构及配置总结

    - **新生代与老年代的比例**:通过`XX:NewRatio`参数调整新生代和老年代的比例,例如`XX:NewRatio=3`表示新生代占1/3,老年代占2/3。 - **Eden与Survivor比例**:`XX:SurvivorRatio`用于设置Eden与一个Survivor...

    JVM内存模型

    JVM内存模型详解 JVM内存模型是Java虚拟机(JVM)中的一种内存管理机制,它将内存区分为永久区内存(Permanent space)和堆内存(heap space)两大块。永久区内存用于存放加载的Class类级对象,如class本身、method...

    java获得jvm内存大小

    本文将深入探讨如何在Java中获取JVM内存大小,包括堆内存的总量、最大值以及剩余空间,并解析给定代码片段中的关键概念。 ### JVM内存模型 在讨论如何获取JVM内存大小之前,首先需要理解JVM的内存布局。JVM内存...

    jvm内存监控工具使用

    ### JVM内存监控工具详解 #### 引言 Java Virtual Machine (JVM) 是运行 Java 应用程序的核心组件,其性能直接影响应用的响应速度和稳定性。JVM 的内存管理是性能优化的关键,尤其是在高并发环境下,合理的内存...

    深入详解JVM内存模型与JVM参数详细配置.pdf

    "深入详解JVM内存模型与JVM参数详细配置" 本资源详细介绍了JVM内存模型的结构和组成部分,包括堆内存、方法区、栈内存、程序计数器等。同时,还详细介绍了JVM参数的配置和调整方法,以提高JVM的性能和效率。 ...

    (二)MATJVM 内存分析工具.MAT JVM 内存分析工具.MAT JVM 内存分析工具.

    4. **优化建议**:MAT会提供优化建议,如释放无用对象、调整GC参数等。 在MAT的插件`plugins2`中,可能包含了一些扩展功能或者与其他工具的集成,比如与其他IDE(如Eclipse)的集成,或者是对特定类型内存泄漏的...

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

    特别是在大数据处理场景下,合理设置JVM内存参数显得尤为重要。本文将深入探讨JVM内存管理的基础概念、内存设置方法及其调优策略,以帮助开发者避免常见的`java.lang.OutOfMemoryError`异常,提升应用性能。 #### ...

    JVM内存模型以及垃圾回收相关资料

    JVM调优涉及调整这些内存参数,如设置YOUNG+OLD段和YOUNG段的初始及最大大小,以及PERM段的大小。SurvivorRatio参数定义了Survivor区和Eden区的比例。通过合理配置这些参数,可以减少垃圾回收的频率和时间,避免系统...

    jvm内存分析工具mat

    在JVM内存管理中,内存泄漏是一种常见的性能问题,可能导致应用运行缓慢,甚至崩溃。MAT通过解析JVM生成的hprof文件(内存快照),可以深入分析堆内存的各个部分,包括对象分配、存活状态、引用关系等,帮助定位问题...

    jvm 配置jvm参数

    JVM参数主要分为两大类:一类是用于控制JVM运行时行为的参数,如内存分配、垃圾回收策略等;另一类则是用于调试和监控的参数,如日志记录、性能分析等。以下是一些关键的JVM参数: 1. **堆大小设置**: - `-Xms`:...

Global site tag (gtag.js) - Google Analytics