JVM常用参数盘点

先来看一张图:


  • -Xms20M

表示设置JVM启动内存的最小值为20M,必须以M为单位

  • -Xmx20M

表示设置JVM启动内存的最大值为20M,必须以M为单位。将-Xmx和-Xms设置为一样可以避免JVM内存自动扩展。大的项目-Xmx和-Xms一般都要设置到10G、20G甚至还要高

  • -verbose:gc

表示输出虚拟机中GC的详细情况

  • -Xss128k

表示可以设置虚拟机栈的大小为128k

  • -XX:PermSize=10M(JDK1.7)

表示JVM初始分配的永久代的容量,必须以M为单位

  • -XX:MaxPermSize=10M(JDK1.7)

表示JVM允许分配的永久代的最大容量,必须以M为单位,大部分情况下这个参数默认为64M

  • -XX:MetaspaceSize(JDK1.8)

设置元空间的初始值

  • -XX:MaxMetaspaceSize(JDK1.8)
    设置元空间最大值

  • -XX:NewRatio=4

表示设置年轻代:老年代的大小比值为1:4,这意味着年轻代占整个堆的1/5

  • -XX:SurvivorRatio=8

表示设置2个Survivor区:1个Eden区的大小比值为2:8,这意味着Survivor区占整个年轻代的1/5,这个参数默认为8

  • -Xmn20M

表示设置年轻代的大小为20M

  • -XX:+HeapDumpOnOutOfMemoryError

表示可以让虚拟机在出现内存溢出异常时Dump出当前的堆内存转储快照

  • -XX:+PrintGCDetails

表示在控制台上打印出GC具体细节

  • -XX:+PrintGC

表示在控制台上打印出GC信息

  • -XX:PretenureSizeThreshold=3145728

表示对象大于3145728(3M)时直接进入老年代分配,这里只能以字节作为单位

  • -XX:MaxTenuringThreshold=1

表示对象年龄大于1,自动进入老年代

  • -XX:+PrintHeapAtGC

表示可以看到每次GC前后堆内存布局

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Java 虚拟机有自己完善的硬件架构, 如处理器、堆栈、寄存器等,还具有相应的指令系统。JVM 屏蔽了与具体操作系...
    尹小凯阅读 1,717评论 0 10
  • 前言 本文是对JVM flag系列文章的翻译和精简 JDK 作者是基于JDK6的,本人为JDK8. 示例代码 命令...
    alonwang阅读 3,755评论 0 1
  • Tomcat 的缺省配置是不能稳定长期运行的,也就是不适合生产环境,它会死机,让你不断重新启动,甚至在午夜时分唤醒...
    愤怒的_菜鸟阅读 2,148评论 0 24
  • 内存溢出和内存泄漏的区别 内存溢出:out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,...
    Aimerwhy阅读 766评论 0 1
  • 偷偷更新一张 昨晚我 化了3小时的骷髅王妆 拍了一晚上的照片 一共78张张好看的照片 10个好看的视频 哈哈 想看...
    A猫南北_阅读 1,542评论 0 1