堆设置

-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. java static关键字和代码块

    static关键字 代码块 方法重写 1. 方法重写的特点: 2. 注意事项: static关键字 为什么需要学习static关键字? 针对某一个变量属于类而不属于某一个具体的对象的时候,我们可以考虑 ...

  2. 在mysql 中使用utf8的问题

    在MapReducer插入mysql 遇到了 Incorrect string value: '\xF0\x9F\x98\xAD",...' for column 'commentConte ...

  3. 设置webstorm自动删除行尾分号

  4. python操作MongoDB、MySQL、Postgres、Sqlite、redis实例

    总结:除了MongoDB.redis,其他三个数据库用python来操作其实是差不多的.所有例子都很简单,实际生产环境中的数据库操作远比这复杂得多,命令也比我例子中的多得多,我这里高级一点的用法就是批 ...

  5. SQL-递归查询在Ora与Mssql

    今天在工作中,有同事“请教”从 Sql Server 移植数据到 DM DB 的改写问题,本以为难度不大,结果发现 Sql Server 数据库的语法.架构上,与 Oracle / DM 数据库差异还 ...

  6. 13: ELK(ElasticSearch+Logstash+ Kibana)搭建实时日志分析平台

    参考博客:https://www.cnblogs.com/zclzhao/p/5749736.html 51cto课程:https://edu.51cto.com/center/course/less ...

  7. C# 无法将类型为“__DynamicallyInvokableAttribute”的对象强制转换为类型...

    错误代码: //遍历方法特性 foreach (MethodInfo m in type.GetMethods()) { foreach(Attribute a in m.GetCustomAttri ...

  8. 2018年—2019年第二学期第四周C#学习个人总结

    第五章面向对象高级包括:5.1类的继承中有5.1.1继承的概念:一是在现实生活中,继承一般指的是子女继承父辈的财产;在C#,类的继承是指在一个现有类的基础上去构建一个新的类,构建出来的新类被称作子类, ...

  9. HttpClient throws TaskCanceledException on timeout

    error msg: HttpClient throws TaskCanceledException on timeout HttpClient is throwing a TaskCanceledE ...

  10. 人生苦短,我用Python——博客目录

    计算机基础 计算机硬件基础知识 操作系统基础 Python基础 Windows环境下Python2和Python3的安装 交互式环境与变量的使用 简单介绍Python基本数据类型及程序交互 基本运算符 ...