堆设置

-Xms256M:初始堆大小256M,默认为物理内存的1/64

-Xmx1024M:最大堆大小1024M,默认为物理内存的1/4,等于与-XX:MaxHeapSize=64M

-Xmn64M:年轻代大小为64M(JDK1.4后支持),相当于同时设置NewSize和MaxNewSize为64M

-XX:NewSize=64M:初始年轻代大小

-XX:MaxNewSize=256M:最大年轻代大小(默认为堆最大值的1/3)

-XX:OldSize=64M:年老代大小64M(测试验证JDK1.8.191该参数设置无效,JDK11下设置成功)

-XX:NewRatio=4:年老代:年轻代=4:1,默认值2

-XX:SurvivorRatio=8:年轻代中,2个Survivor区与1个Eden区比例=2:8,Survivor占新生代内存比例为1/5,默认值8

-XX:MaxHeapFreeRatio=70:堆内存使用率大于70时扩张堆内存,xms=xmx时该参数无效,默认值70

-XX:MinHeapFreeRatio=40:堆内存使用率小于40时缩减堆内存,xms=xmx时该参数无效,默认值40

备注:

堆大小=年轻代(Young Generation)+年老代(Old Generation),网上有同学将持久代归为堆内存,感觉是错误的。

年轻代=伊甸园区(Eden Space) + 幸存者区(Survivor Space,Serial收集器有2个相同容量的幸存者区,分别叫From和To,G1收集器只有一个,此处是个人理解,不一定正确)。

持久代设置(共享内存的非堆区域)

-XX:PermSize=56M:初始分配的持久代容量,默认为物理内存的1/64(从1.8起,该参数已作废,可使用-XX:MetaspaceSize替代)

-XX:MaxPermSize=56M:持久代的最大容量,默认为物理内存的1/4,设置值过小会导致java.lang.OutOfMemoryError: PermGen space错误。(从1.8起,该参数已作废,可使用-XX:MaxMetaspaceSize替代)

元空间(共享内存的非堆区域,JDK1.8新增)

-XX:MetaspaceSize=64M:触发FullGC阈值,默认21807104B,约20.8M,而且Metaspace内存容量到达该阈值后,每次扩容都有可能会触发FullGC

-XX:MaxMetaspaceSize=512M:最大元空间大小,默认无限制

虚拟机线程堆栈

-Xss128k:设置JAVA线程堆栈大小为128k

GC相关

-Xnoclassgc:关闭JVM垃圾回收功能

-XX:+UseG1GC:使用G1垃圾回收器

-XX:+UseConcMarkSweepGC:使用CMS垃圾收集器

-XX:+UseSerialGC:使用Serial垃圾收集器

-XX:+DisableExplicitGC:静止Java程序中的FULL GC,如System.gc()

-XX:+PrintGCDetails:GC时打印详细信息(JDK11已过期,新版本使用-Xlog:gc代替)

-XX:+PrintGC:GC时打印信息(JDK11已过期,新版本使用-Xlog:gc代替)

-XX:+PrintTenuringDistribution:用于显示每次Minor GC(年轻代GC)时Survivor区中各个年龄段的对象的大小

-XX:InitialTenuringThreshol:年轻代对象转换为老年代对象最小年龄值,默认值7,对象在坚持过一次Minor GC之后,年龄就加1

-XX:MaxTenuringThreshold:年轻代对象转换为老年代对象最大年龄值,默认值15

-Xloggc:filename:将GC信息输出到文件,带时间戳(如:-Xloggc:E:\gc.txt,JKD11已过期,新版本使用-Xlog:gc:gc.txt代替,日志内容见下图)

-XX:+PrintHeapAtGC:GC时打印堆前后信息

-Xlog:gc:输出GC日志信息(JDK11新增)

其他

-XX:+HeapDumpOnOutOfMemoryError:内存溢出时Dump出当前堆内存快照

-XX:HeapDumpPath=filename:导出路径(如:-XX:HeapDumpPath=E:/a.dump)

-XX:PretenureSizeThreshold=10240:对象大小超过10KB时直接在年老代分配内存。默认值0,单位字节,表示所有的对象都在年轻代eden区分配

JVM常用配置参数说明的更多相关文章

  1. JVM 常用配置

    JVM的配置,最常用的两个配置就是:-Xms512m –Xmx1024m -Xms设置JVM的初始化内存大小,-Xmx为最大内存大小,当突破这个值,将会报内存溢出,导致的原因有很多,主要是虚拟机的回收 ...

  2. HotSpot JVM 常用配置设置

    本文讨论的选项是针对HotSpot虚拟机的. 1.选项分类及语法 HotspotJVM提供以下三大类选项: 1.1.标准选项 这类选项的功能是很稳定的,在后续版本中也不太会发生变化. 运行java或者 ...

  3. MySQL常用配置参数说明

    1.sync_binlog sync_binlog=0,当事务提交之后,MySQL不做fsync之类的磁盘同步指令刷新binlog_cache中的信息到磁盘,而让Filesystem自行决定什么时候来 ...

  4. 《连载 | 物联网框架ServerSuperIO教程》2.服务实例的配置参数说明

    1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍  <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制 一.综述 SuperIO(SIO)定位 ...

  5. Tomcat记录-tomcat常用配置详解和优化方法(转载)

    常用配置详解 1 目录结构 /bin:脚本文件目录. /common/lib:存放所有web项目都可以访问的公共jar包(使用Common类加载器加载). /conf:存放配置文件,最重要的是serv ...

  6. tomcat常用配置详解和优化方法

    tomcat常用配置详解和优化方法 参考: http://blog.csdn.net/zj52hm/article/details/51980194 http://blog.csdn.net/wuli ...

  7. JVM常用命令和性能调优建议 [Could not create the Java virtual machine]

    一.查看jvm常用命令jinfo:可以输出并修改运行时的java 进程的opts. jps:与unix上的ps类似,用来显示本地的java进程,可以查看本地运行着几个java程序,并显示他们的进程号. ...

  8. JVM常用命令和性能调优建议

      一.查看jvm常用命令jinfo:可以输出并修改运行时的java 进程的opts. jps:与unix上的ps类似,用来显示本地的java进程,可以查看本地运行着几个java程序,并显示他们的进程 ...

  9. HotSpot JVM常用参数设置

    转自:https://www.zybuluo.com/jewes/note/57352 选项的分类 Hotspot JVM提供以下三大类选项: 1. 标准选项:这类选项的功能是很稳定的,在后续版本中也 ...

随机推荐

  1. Spring restful

    1. RESTful 不是一项技术,也不是一个标准,而是一种风格,跟servlet不在一个层面上,根本无法比较.一个基于servlet的application也是可以是符合RESTful风格的,换言之 ...

  2. oracle数据库创建用户

    --4.1 创建表空间 CREATE TABLESPACE mdm_data DATAFILE 'D:\soft\Oracle\oracl\oradata\mdm_data01.dbf' SIZE 3 ...

  3. JS中if判断 非空即为真 非0即为真

    1.字符串参与判断时:非空即为真判断字符串为空的方法if(str!=null && str!=undefined && str !='')可简写为if(!str){   ...

  4. QSettings 类

    一 .QSettings介绍: 用户通常希望应用程序记住其设置.在windows中,这些设置保存在注册表中,ios在属性文件列表中,而unix,在缺乏标准的情况下,其存储在ini文本中.QSettin ...

  5. 解决Postman User-Agent 设置失效

    问题: 设置header中的UserAgent选项,抓包以后依然还是默认头信息 test Domain www.baidu.com Iphone6 UserAgent访问效果 User-Agent: ...

  6. 16: vue + crypto-js + python前后端加密解密

    1.1 vue中使用crypto-js进行AES加密解密    参考博客:https://www.cnblogs.com/qixidi/p/10137935.html 1.初始化vue项目 vue i ...

  7. Docker介绍及使用

    什么是容器? 容器就是在隔离的环境运行的一个进程,如果进程停止,容器就会销毁.隔离的环境拥有自己的系统文件,ip地址,主机名等,kvm虚拟机,linux,系统文件 程序:代码,命令 进程:正在运行的程 ...

  8. Sonar 配置及部署(windows系统)

    Sonar 是一个用于代码质量管理的开放平台.通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具. 与持续集成工具(例如 Hudson/Jenkins 等)不同,Sona ...

  9. IPTABLES使用总结(内网模拟银行网络)

    iptables中有以下三种类型的表: FILTER表,默认的表,包含以下三种内建链: INPUT链,发给本地sockets的包 FORWARD链,经由系统发送的包 OUTPUT链,本地生成并发出的包 ...

  10. 【VS工具】vs2017中的一些小功能

    一.json转为类 1.打开一个json文件,复制 2.打开一个.cs文件,将json粘贴为类 3.got it 二.C#交互窗口 1.视图->其他窗口->C#交互窗口  2.打开了一个窗 ...