35.JVM 参数


说下下面jvm参数含义:

-server -Xms512m -Xmx512m -Xss1024K
-XX:PermSize=256m -XX:MaxPermSize=512m -
XX:MaxTenuringThreshold=20 XX:CMSInitiatingOccupancyFraction=80 -
XX:+UseCMSInitiatingOccupancyOnly

35.1 内存相关

选项 参数详解 默认值
-Xms 初始堆大小
-Xmx 最大堆大小
-Xmn 年轻代大小(1.4or lator)整个JVM内存大小=年轻代大小 + 年老代大小 + 持久代大小。持久代一般固定大小为64m,所以增大年轻代后,将会减小年老代大小。此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8
-XX:newSize 表示新生代初始内存的大小,应该小于-Xms的值
-XX:NewRatio 设置年轻代和年老代的比值。如:为3,表示年轻代与年老代比值为1:3,年轻代占整个年轻代年老代和的1/4
-XX:MaxNewSize 年轻代最大值(for 1.3/1.4)
-XX:PermSize 设置持久代(perm gen)初始值
-XX:MaxPermSize 设置持久代最大值
-Xss 每个线程的堆栈大小
-XX:ThreadStackSize
-XX:SurvivorRatio Eden区与Survivor区的大小比值, 设置为8,则两个Survivor区与一个Eden区的比值为2:8,一个Survivor区占整个年轻代的1/10
-XX:LargePageSizeInBytes 内存页的大小不可设置过大, 会影响Perm的大小,基本没用过
-XX:+UseFastAccessorMethods 原始类型的快速优化 1.7以后不建议使用,1.6之前默认打开的
-XX:+UseFastEmptyMethods 优化空方法,1.7以后不建议使用,1.6之前默认打开的
-XX:+DisableExplicitGC 关闭System.gc()
-XX:MaxTenuringThreshold 设置垃圾最大年龄。如果设置为0的话,则年轻代对象不经过Survivor区,直接进入年老代。对于年老代比较多的应用,可以提高效率。如果将此值设置为一个较大值,则年轻代对象会在Survivor区进行多次复制,这样可以增加对象再年轻代的存活时间,增加在年轻代即被回收的概率
-XX:+AggressiveOpts 加快编译
-XX:+UseBiasedLocking 锁机制的性能改善, 有偏见的锁是使得锁更偏爱上次使用到它线程。在非竞争锁的场景下,即只有一个线程会锁定对象,可以实现近乎无锁的开销。 默认开启
-Xnoclassgc 禁用类垃圾回收
-XX:SoftRefLRUPolicyMSPerMB 每兆堆空闲空间中SoftReference的存活时间 默认是1S
-XX:PretenureSizeThreshold 对象超过多大是直接在旧生代分配,单位字节 新生代采用Parallel Scavenge GC时无效另一种直接在旧生代分配的情况是大的数组对象,且数组中无外部引用对象.
-XX:+CollectGen0First FullGC时是否先YGC false

35.2 收集器相关

选项 参数详解 默认值
-XX:+UseParallelGC 选择垃圾收集器为并行收集器。此配置仅对年轻代有效。可以同时并行多个垃圾收集线程,但此时用户线程必须停止。
-XX:+UseParNewGC 设置年轻代收集器ParNew
-XX:ParallelGCThreads Parallel并行收集器的线程数
-XX:+UseParallelOldGC 设置老年代的并行收集器是ParallelOld
-XX:+UseG1GC 使用G1收集器
-XX:MaxGCPauseMillis 每次年轻代垃圾回收的最长时间(最大暂停时间)
-XX:+UseAdaptiveSizePolicy 设置此选项后,并行收集器会自动选择年轻代区大小和相应的Survivor区比例,以达到目标系统规定的最低相应时间或者收集频率等,此值建议使用并行收集器时,一直打开.
-XX:GCTimeRatio 设置垃圾回收时间占程序运行时间的,百分比公式为1/(1+n)
-XX:+ScavengeBeforeFullGC Full GC前调用YGC true
-XX:+UseConcMarkSweepGC 使用CMS内存收集
-XX:+AggressiveHeap 试图是使用大量的物理内存长时间大内存使用的优化,能检查计算资源(内存, 处理器数量)至少需要256MB内存大量的CPU/内存, (在1.4.1在4CPU的机器上已经显示有提升)
-XX:CMSFullGCsBeforeCompaction 由于并发收集器不对内存空间进行压缩,整理,所以运行一段时间以后会产生"碎片",使得运行效率降低.此值设置运行多少次GC以后对内存空间进行压缩,整理
-XX:+CMSParallelRemarkEnabled 降低CMS标记停顿
-XX+UseCMSCompactAtFullCollection 在FULL GC的时候, 对年老代的压缩,CMS是不会移动内存的, 因此, 这个非常容易产生碎片, 导致内存不够用, 因此, 内存的压缩这个时候就会被启用。 增加这个参数是个好习惯。可能会影响性能,但是可以消除碎片
-XX:+UseCMSInitiatingOccupancyOnly 使用手动定义初始化定义开始CMS收集,禁止hostspot自行触发CMS GC
-XX:CMSInitiatingOccupancyFraction=70 使用cms作为垃圾回收使用70%后开始CMS收集
-XX:CMSInitiatingPermOccupancyFraction 设置Perm Gen使用到达多少比率时触发
-XX:+CMSIncrementalMode 设置为增量模式
-XX:CMSTriggerRatio CMSInitiatingOccupancyFraction = (100 - MinHeapFreeRatio) + (CMSTriggerRatio * MinHeapFreeRatio / 100) 处罚cms收集的比例
-XX:MinHeapFreeRatio java堆中空闲量占的最小比例
-XX:+CMSClassUnloadingEnabled 如果你启用了CMSClassUnloadingEnabled ,垃圾回收会清理持久代,移除不再使用的classes。这个参数只有在 UseConcMarkSweepGC 也启用的情况下才有用。参数如下:

35.3 辅助信息

选项 参数详解 默认值
-XX:+PrintGC 输出形式:[GC 118250K->113543K(130112K), 0.0094143 secs]Full GC 121376K->10414K(130112K), 0.0650971 secs]
-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps
-XX:+PrintGC:PrintGCTimeStamps
-XX:+PrintGCApplicationStoppedTime 打印垃圾回收期间程序暂停的时间.可与上面混合使用
-XX:+PrintGCApplicationConcurrentTime 打印每次垃圾回收前,程序未中断的执行时间.可与上面混合使用
-XX:+PrintHeapAtGC 打印GC前后的详细堆栈信息
-Xloggc:filename 把相关日志信息记录到文件以便分析.与上面几个配合使用
-XX:+PrintClassHistogram 遇到Ctrl-Break后打印类实例的柱状信息,与jmap -histo功能相同
-XX:+PrintTenuringDistribution 查看每次minor GC后新的存活周期的阈值
-XX:PrintHeapAtGC 打印GC前后的详细堆栈信息

35.JVM 参数(JVM中的各种参数及含义、收集器相关、PrintGC等各种辅助参数)相关推荐

  1. 深入JVM系列(二)之GC机制、收集器与GC调优

    一.回顾JVM内存分配 需要了解更多内存模式与内存分配的,请看 深入JVM系列(一)之内存模型与内存分配 1.1.内存分配: 1.对象优先在EDEN分配 2.大对象直接进入老年代  3.长期存活的对象 ...

  2. SAP中关于生产版本及成本收集器的联动处理

    在企业的实际业务中,偶而会遇到生产版本更改及删除需求.生产版本定义企业生产产品采用何种BOM?何种工艺路线?通常由工程技术部门进行定义.在有成本管理需求的企业中,生产版本会与成本收集器之间有关联.通常 ...

  3. 【JVM】JVM参数性能调优 -Xms -Xmx -Xmn -XX:NewRatio -XX:SurvivorRatio

    原文链接: http://unixboy.iteye.com/blog/174173/ 上图来自:https://blog.csdn.net/jakeswang/article/details/105 ...

  4. JVM并行收集器ParNew、Parallel相关参数

    并行收集器相关参数 -XX:+UseParallelGC Full GC采用parallel MSC (此项待验证) 选择垃圾收集器为并行收集器.此配置仅对年轻代有效.即上述配置下,年轻代使用并发收集 ...

  5. java eden分配参数,JVM垃圾收集器与内存分配策略,

    垃圾收集器与内存分配策略 对象存活判断 引用计数算法 给对象添加一个计数器,每有一个引用+1,当引用失效-1,若为0则不在被使用. 可达性分析算法 对象是否可到达GC roots 或者说GC root ...

  6. [jvm][面试]JVM 调优总结

    说明: 以下的总结内容适用于jdk8以下的版本. jdk8已经移除了永久区(PermGen) 堆大小设置 JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制:系 ...

  7. 深入JVM虚拟机(四) Java GC收集器

    转载自  深入JVM虚拟机(四) Java GC收集器 1 GC收集器 1.1 Serial串行收集器 串行收集器主要有两个特点:第一,它仅仅使用单线程进行垃圾回收:第二,它独占式的垃圾回收. 在串行 ...

  8. JVM初探:内存分配、GC原理与垃圾收集器

    JVM内存的分配与回收大致可分为如下4个步骤: 何时分配 -> 怎样分配 -> 何时回收 -> 怎样回收. 除了在概念上可简单认为new时分配外, 我们着重介绍后面的3个步骤: I. ...

  9. (八)JVM成神路之GC分区篇:G1、ZGC、ShenandoahGC高性能收集器深入剖析

    引言 在<GC分代篇>中,我们曾对JVM中的分代GC收集器进行了全面阐述,而在本章中重点则是对JDK后续新版本中研发推出的高性能收集器进行深入剖析,但在开始前,先来看看JDK的发布记录中关 ...

最新文章

  1. 气泡形提示控件grumble.js
  2. mysql -ss -e_课内资源 - 基于ssm框架和mysql的网上选课系统
  3. 信息系统项目管理师:第8章:项目质量管理-章节真题+解析
  4. CUDA学习(九十一)
  5. leetcode 209. Minimum Size Subarray Sum | 209. 长度最小的子数组(Java)
  6. extern __shared__
  7. Loj#2880-「JOISC 2014 Day3」稻草人【CDQ分治,单调栈,二分】
  8. Codeforces Round #313 (Div. 1) C. Gerald and Giant Chess DP
  9. 《如何了解软件的设计》学习笔记0——模型-接口-实现
  10. k8s集群部署项目_JAVA项目(部署镜像暴露应用)---K8S_Google工作笔记0062
  11. 组建优秀的团队-实现目标的开始
  12. java 可重入锁 clh_Java可重入锁原理
  13. 方维团购系统二次开发,项目经验
  14. JAVA内部类(一)
  15. 网站中应用QQ一键登录,详细讲解和范例
  16. 使用FreeImage保存彩图,灰度图
  17. 菜鸟的草缸 篇三:闯缸敢死队、莫斯墙制作
  18. 目前可用的通用DNS
  19. 人工智能培训学校学哪些内容
  20. 软件测试周刊(第15期):将军赶路 不追小兔

热门文章

  1. 打卡签到python代码_如何利用Python实现自动打卡签到
  2. 你真的了解Python吗?这篇文章可以让你了解90%
  3. Java8 PriorityBlockingQueue源码分析
  4. wxWidgets:wxFileDirPickerEvent类用法
  5. boost::sort模块实现spreadsort 浮点函子排序示例
  6. boost::sort模块实现spreadsort 双排序示例
  7. boost::generate相关的测试程序
  8. boost::mp11::mp_map_find相关用法的测试程序
  9. boost::hana::unfold_left用法的测试程序
  10. boost::graph模块实现拉马努金图的周长和直径的测试程序