堆设置

-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. HTTP劫持和DNS劫持

    HTTP劫持和DNS劫持 首先对运营商的劫持行为做一些分析,他们的目的无非就是赚钱,而赚钱的方式有两种: 1.对正常网站加入额外的广告,这包括网页内浮层或弹出广告窗口: 2.针对一些广告联盟或带推广链 ...

  2. CAN双机通讯调试小结(SJA1000与MCP2515通讯)

    2011-12-07 21:36:02. 效果图: 1,51的SJA1000自收自发测试完成,见上一篇小结. 2,SJA1000自测完成后,再自测MCP2515就非常容易.主要是设置工作模式为回环模式 ...

  3. 在Javascript中数组对象(json)里元素相同的操作

    1.数组对象元素相同,分组显示   let arry = [ { expensedate: '2018/09/29', amount: 1, type: '交通费' }, { expensedate: ...

  4. iOS进阶之使用 NSURLProtocol 拦截 HTTP 请求(转载)

    这篇文章会提供一种在 Cocoa 层拦截所有 HTTP 请求的方法,其实标题已经说明了拦截 HTTP 请求需要的了解的就是 NSURLProtocol. 由于文章的内容较长,会分成两部分,这篇文章介绍 ...

  5. Linux笔记 #10# 用于支持Web应用开发&部署&配置的一些自定义脚本

    索引 一.本地开发与测试相关脚本 1.startup.sh 2.shutdown.sh 3.catalina-out.sh 4.localhost_access_log.sh 5.上传本地文件到服务器 ...

  6. axure原型设计

    在上一个学期的学习中,我们已经初步学习了axure的使用方法,它可以为负责定义需求设计,功能和界面的人员能快速设计出所需产品. 引入:在我们想为软件设计原型的时候,纸质原型很难表达交互的界面,与此同时 ...

  7. 【Alpha】Scrum Meeting 7

    目录 前言 任务分配 燃尽图 会议照片 签入记录 困难 前言 第7次会议在4月11日19:00由PM在教一317召开. 交流确认了任务进度,对下一阶段任务进行分配.时长60min. 任务分配 姓名 当 ...

  8. jquery.validator 手机号验证

    1.在input中加上mobile="true",maxlength="11" <label class="w170 control-label ...

  9. 使用MySQL workbench 和Excel表之间的数据互相导出

    导出数据是很常用的功能,但今天在操作时遇到了一点问题,记录下来,方便其他人查阅. 1. 使用MySQL workbench 导出数据 在workbench里连接好数据库之后直接点击左侧的managem ...

  10. Unity3D|-XLua热更新用法的大致流程

    xlua是由腾讯维护的一个开源项目,我们可以在github上下载这个开源项目并查看一些相关文档 官网:https://github.com/Tencent/xLua 配置文档:https://gith ...