`

jvm 参数

    博客分类:
  • java
JVM 
阅读更多
a. 对于布尔型的选项:-XX:+<option> 启用;-XX:-<option> 禁用
b. 对于数值型的选项:-XX:<option>=<number>。
   单位: k/K - kilobytes
        m/M - megabytes
        g/G - gigabytes
c. 对于字符型的选项:-XX:<option>=<string>
d. jvm对大小写敏感。

1. 行为型参数

   -XX:+DisableExplicitGC
   禁用显式的System.GC()调用。

   -XX:+RelaxAccessControlCheck
   在核查器中放宽入侵控制检查
  
   -XX:+ScavengeBeforeFullGC
   新生代GC优先于Full GC执行

   -XX:+UseConcMarkSweepGC
   为年老代/永久代使用并发标记-清除收集器

   -XX:+UseSerialGC
   使用串行垃圾收集

   -XX:+UseParallelGC
   使用并行垃圾收集,此配置仅对年轻代有效。不能和-XX:+UseSerialGC同时使用

   -XX:+UseParallelOldGC
   对所有代使用并行垃圾收集器,启用该项将自动启用-XX:+UseParallelGC

   -Xint
   只使用解释执行模式

   -client
   client模式,默认模式。使用C1优化,一般用于桌面应用程序。

   -server
   使用C2优化,多用于服务器应用程序。

   -Xnoclassgc
   禁止类的垃圾回收。

   -Xincgc
   启用增量垃圾回收

   -Xbootclasspath:
   设置引导类加载器需要加载的目录、zip/jar等,使用分号隔开。

   -Xbootclasspath/a:
   设置引导类加载器最后需要加载的目录、zip/jar等,使用分号隔开。如-Xbootclasspath/a:D:/mvn/org/apache/ant/ant/1.5.3/ant-1.5.3.jar;E:/ant-1.6.0.jar

   -Xbootclasspath/p:
   设置引导类加载器最先需要加载的目录、zip/jar等,使用分号隔开


2. 垃圾回收参数

   -XX:MaxGCPauseMillis
   设置每次垃圾回收的最长时间。这是一个软目标,jvm将尽可能满足该参数。

   -XX:NewRatio=n
   年老代/年轻代的比率,默认值为2。因为堆内存=年轻代+年老代。此时年轻代占堆内存的1/3。

   -XX:SurvivorRatio=n
   Eden区和其中一个Survivor区的比率。默认值为8。因为年轻代=1个Eden+2个Survivor,所以此时每个Survivor区占年轻代的1/10。

   -XX:MaxTenuringThreshold=n
   如果一个对象在Survivor区移动n次还没有被回收,就放入年老代。默认值为15。

   -XX:ParallelGCThreads=n
   配置并行收集器的线程数。即多少个线程同时进行垃圾回收。最好配置此值与处理器数目相等。

3. 性能调优参数

   -Xms256M
   设置初始堆内存为256M

   -Xmx512M
   设置最大堆内存为512M

   -Xmn96M
   设置年轻代大小为96M

   -Xss1M
   设置线程栈大小为1M

   -XX:PermSize=128M
   设置永久代的内存为128M

   -XX:MaxPermSize=256M
   设置永久代的最大内存为256M。默认永久代的最大内存为64M。

   -XX:NewSize=20M
   年轻代的默认大小为20M。

   -XX:MaxNewSize=100M
   年轻代的最大内存为100M。

   -XX:CompileThreshold=10000
   方法被调用次数达到该阀值时,就编译为机器码。server模式默认10000,client模式默认1500。

   -XX:MaxHeapFreeRatio=70
   垃圾回收后,空闲堆所占的最大比例。大于该值后,堆就会被收缩。

   -XX:MinHeapFreeRatio=40
   垃圾回收后,空闲堆所占的最小比例。小于该值后,堆就会被扩展。

4. 调试跟踪参数

   -XX:+PrintGC
   打印垃圾回收信息。

   -XX:+PrintGCDetails
   打印垃圾回收详细信息。

   -XX:+PrintHeapAtGC
   打印GC前后的详细堆栈信息。

示例:
{Heap before GC invocations=19 (full 1):
def new generation   total 78720K, used 74234K [0x03ae0000, 0x09040000, 0x0e580000)
  eden space 70016K, 100% used [0x03ae0000, 0x07f40000, 0x07f40000)
  from space 8704K,  48% used [0x07f40000, 0x0835e8a8, 0x087c0000)
  to   space 8704K,   0% used [0x087c0000, 0x087c0000, 0x09040000)
tenured generation   total 174784K, used 66479K [0x0e580000, 0x19030000, 0x23ae0000)
   the space 174784K,  38% used [0x0e580000, 0x1266bc50, 0x1266be00, 0x19030000)
compacting perm gen  total 196608K, used 42690K [0x23ae0000, 0x2fae0000, 0x2fae0000)
   the space 196608K,  21% used [0x23ae0000, 0x26490a08, 0x26490c00, 0x2fae0000)
No shared spaces configured.
26.497: [GC 26.497: [DefNew: 74234K->6916K(78720K), 0.0231646 secs] 140713K->73395K(253504K), 0.0232168 secs] [Times: user=0.02 sys=0.00, real=0.02 secs]
Heap after GC invocations=20 (full 1):
def new generation   total 78720K, used 6916K [0x03ae0000, 0x09040000, 0x0e580000)
  eden space 70016K,   0% used [0x03ae0000, 0x03ae0000, 0x07f40000)
  from space 8704K,  79% used [0x087c0000, 0x08e81170, 0x09040000)
  to   space 8704K,   0% used [0x07f40000, 0x07f40000, 0x087c0000)
tenured generation   total 174784K, used 66479K [0x0e580000, 0x19030000, 0x23ae0000)
   the space 174784K,  38% used [0x0e580000, 0x1266bc50, 0x1266be00, 0x19030000)
compacting perm gen  total 196608K, used 42690K [0x23ae0000, 0x2fae0000, 0x2fae0000)
   the space 196608K,  21% used [0x23ae0000, 0x26490a08, 0x26490c00, 0x2fae0000)
No shared spaces configured.
}

   -XX:+PrintGCTimeStamps
   打印垃圾回收的时间戳。

   -XX:+PrintTenuringDistribution
   打印对象再永久代的生存期信息。

   -XX:InlineSmallCode=25
   当编译好的方法的本地码小于此值时,内联此方法。

   -XX:MaxInlineSize=35
   能被内联的方法的最大字节码大小。

   -XX:FreqInlineSize=35
   能被内联的频繁调用的方法的最大字节码大小。

   -Xloggc:<file>
   输出带时间戳的垃圾回收状态信息到指定的文件。使用此项会导致Console上不显示垃圾回收信息。

   -XX:+HeapDumpOnOutOfMemoryError
   堆内存溢出时dump文件,以供分析
分享到:
评论

相关推荐

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

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

    jdk8 jvm 参数图(随手参考好资料)

    常用jvm参数都在这张图中,参考起来方便,是国外大神整理的

    关键业务系统JVM参数推荐

    ### 关键业务系统JVM参数推荐 #### 一、引言 在关键业务系统中,除了追求高吞吐量和低延迟之外,系统的稳定性和问题排查的便捷性同样至关重要。因此,选择合适的JVM参数变得尤为重要。本文将详细介绍一些常用的JVM...

    IBM JVM参数选项

    **: 显示帮助信息,介绍可用的所有JVM参数。 - 示例:`-help` 3. **-fullversion**: 输出JVM的完整版本信息。 - 示例:`-fullversion` 4. **-showversion**: 显示JVM的版本信息。 - 示例:`-showversion` 5. *...

    jvm参数设置

    ### JVM参数设置详解 在Java应用开发与维护过程中,JVM(Java虚拟机)的配置至关重要,它直接影响到应用程序的性能表现与稳定性。本文将基于提供的文件内容,深入解析Linux环境下JVM的基本参数设置方法及原理。 ##...

    设置Eclipse的JVM参数

    ### 设置Eclipse的JVM参数 #### 一、引言 在进行Java开发时,Eclipse作为一款广泛使用的集成开发环境(IDE),其性能优化对于提高开发效率和应用稳定性至关重要。其中,设置合适的JVM(Java虚拟机)参数是优化...

    jvm 配置jvm参数

    ### JVM参数配置详解 #### 一、理解JVM参数配置的重要性 Java Virtual Machine (JVM) 是运行Java程序的核心环境,其性能优化很大程度上依赖于正确的JVM参数配置。合理配置JVM参数不仅可以显著提升应用程序的运行...

    jvm参数与系统性能的优化

    JVM 参数与系统性能的优化 在 Java 虚拟机(JVM)中,参数设置对系统性能的影响是至关重要的。通过设置合适的 JVM 参数,可以提高系统性能,减少垃圾回收的频率和时间,提高应用程序的执行效率。 第一点:设置堆栈...

    jvm 参数及gc详解

    本文将深入探讨JVM参数及其与Java垃圾收集相关的知识。 一、JVM参数详解 JVM参数可以分为三类:启动参数(-X),标准参数(-XX),以及非公开(实验性)参数(-XX:)。这些参数允许开发者对JVM的行为进行精细调整...

    jvm参数设置_JVM参数设置_

    JVM参数设置是优化Java应用性能的关键环节,它可以帮助我们控制JVM的行为,如内存分配、垃圾回收策略、线程调度等。下面将详细介绍一些重要的JVM参数及其作用。 1. 内存设置: - `-Xms` 和 `-Xmx`:这两个参数用于...

    JVM参数优化及JVM解析.docx

    根据JVM参数的设置,堆可以被划分为新生代和老年代,新生代又进一步细分为Eden区和两个Survivor区。5、方法区:也称为永久代,存储类的信息、常量、静态变量等,JDK 8之后被元空间(Metaspace)取代,元空间使用的是...

    JVM优化3(Tomcat参数调优,JVM参数调优,jvm字节码,代码优化).pdf

    本篇文件内容主要介绍了JVM优化的第三部分,重点围绕Tomcat参数调优、JVM参数调优、JVM字节码优化以及代码优化等几个方面。下面是针对这些知识点的详细解释: 1. Tomcat参数调优 在Tomcat参数调优部分,首先介绍了...

    Java 6 JVM 参数选项大全

    特别是在Java、J2EE等大型应用中,通过合理设置JVM参数可以极大提升系统的整体性能与稳定性。 #### JVM 非标准参数的重要性 JVM非标准参数主要指那些用于优化JVM内部行为的配置项,这些参数通常在开发阶段被忽略或...

    简单实用JVM参数配置

    【JVM参数配置详解】 Java Virtual Machine (JVM) 是Java程序的核心组成部分,它负责解析和执行Java程序的字节码。JVM的设计目标是提供跨平台的运行环境,通过在实际硬件上模拟一个虚拟的计算机系统,使得Java程序...

    Linux简单调优与JVM参数.docx

    Linux 服务器调优与 JVM 参数调优 本文主要介绍了 Linux 服务器调优和 JVM 参数调优的相关知识点,以便提高服务器性能和 JVM 应用程序的运行效率。 Linux 服务器调优 Linux 服务器调优是指对 Linux 操作系统的...

    jvm 参数调优实践

    JVM参数调优是优化Java应用程序性能的关键环节,尤其是在服务器端的应用中,如Web服务器Resin。本实践案例中,作者分别尝试了三种不同的垃圾回收(GC)策略:串行回收、并行回收和并发回收,并针对每种策略提供了...

    JVM 参数汇总.pdf

    以下是一些关键的JVM参数及其作用: 1. **Xms** 和 **Xmx**: 这两个参数用于设置Java堆内存的大小。`Xms`设定初始堆大小,而`Xmx`设定最大堆大小。确保`Xms`小于或等于`Xmx`,以避免内存不足错误。通常,它们的值会...

Global site tag (gtag.js) - Google Analytics