JVM常用命令参数

  • -Xms20M

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

  • -Xmx20M

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

  • -verbose:gc

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

  • -Xss128k

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

  • -Xoss128k

表示设置本地方法栈的大小为128k。不过HotSpot并不区分虚拟机栈和本地方法栈,因此对于HotSpot来说这个参数是无效的

  • -XX:PermSize=10M

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

  • -XX:MaxPermSize=10M

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

  • -Xnoclassgc

表示关闭JVM对类的垃圾回收

  • -XX:+TraceClassLoading

表示查看类的加载信息

  • -XX:+TraceClassUnLoading

表示查看类的卸载信息

  • -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:+UseG1GC

表示让JVM使用G1垃圾收集器

  • -XX:+PrintGCDetails

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

  • -XX:+PrintGC

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

  • -XX:PretenureSizeThreshold=3145728

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

  • -XX:MaxTenuringThreshold=1

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

  • -XX:CompileThreshold=1000

表示一个方法被调用1000次之后,会被认为是热点代码,并触发即时编译

  • -XX:+PrintHeapAtGC

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

  • -XX:+PrintTLAB

表示可以看到TLAB的使用情况

  • -XX:+UseSpining

开启自旋锁

  • -XX:PreBlockSpin

更改自旋锁的自旋次数,使用这个参数必须先开启自旋锁

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • jvm原理 Java虚拟机是整个java平台的基石,是java技术实现硬件无关和操作系统无关的关键环节,是java...
    AI乔治阅读 17,658评论 21 486
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 43,003评论 11 349
  • 1.一些概念 1.1.数据类型 Java虚拟机中,数据类型可以分为两类:基本类型和引用类型。基本类型的变量保存原始...
    落落落落大大方方阅读 4,839评论 4 86
  • 原文阅读 前言 这段时间懈怠了,罪过! 最近看到有同事也开始用上了微信公众号写博客了,挺好的~给他们点赞,这博客我...
    码农戏码阅读 6,195评论 2 31
  • 自我激励,也就是自打鸡血。我听过一句俗语,就是自己选择的路,跪着也要走完。这也是自我激励。 外界的奖励或者惩罚等激...
    lwch阅读 321评论 0 3

友情链接更多精彩内容