java -Xms4g -Xmx4g -Xmn3g -Xss256k -server -XX:PermSize=64M -XX:MaxPermSize=64M -XX:+UseConcMarkSweepGC -XX:+UseAdaptiveSizePolicy -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled -XX:+UseCMSCompactAtFullCollection -XX:+DisableExplicitGC -XX:CMSFullGCsBeforeCompaction=10 -XX:CMSMaxAbortablePrecleanTime=5 -XX:+HeapDumpOnOutOfMemoryError -jar xxxxx.jar  

-server

启用-server时新生代默认采用并行收集,其他情况下,默认不启用。-server策略为:新生代使用并行清除,年老代使用单线程Mark-Sweep-Compact的垃圾收集器。

-XX:+UseConcMarkSweepGC

设置年老代为并发收集。

-XX:+UseAdaptiveSizePolicy

上文中,因启用-server模式,所以新生代使用并行收集器。

设置此选项后,并行收集器会自动选择年轻代区大小和相应的Survivor区比例,以达到目标系统规定的最低相应时间或者收集频率等,建议使用并行收集器时一直打开。

-XX:+CMSClassUnloadingEnabled

年老代启用CMS,但默认是不会回收永久代(Perm)的。此处对Perm区启用类回收,防止Perm区内存满。(需要与+CMSPermGenSweepingEnabled同时启用)。

-XX:+CMSPermGenSweepingEnabled

同上,为了避免Perm区满引起的Full GC,开启并发收集器回收Perm区选项。

-XX:+UseCMSCompactAtFullCollection

年老代使用CMS,默认是不会整理堆碎片的。设置此配置打开对年老代的压缩,即执行Full GC后对内存进行整理压缩,免得产生内存碎片,但有可能会影响性能。

-XX:CMSFullGCsBeforeCompaction=10

接上文,因为过于频繁的在Full GC后进行碎片整理会影响性能,因此,设置执行10次Full GC后做一次碎片整理。

-XX:CMSMaxAbortablePrecleanTime=5

指定CMS-concurrent-abortable-preclean阶段执行的时间,该阶段主要是执行一些预清理,减少应用暂停的时间。但在JDK 5.0+、6.0+的版本中有可能会由于JDK的bug29导致CMS在remark完毕后很久才触发sweeping动作。通过设置-XX: CMSMaxAbortablePrecleanTime=5(单位为ms)来避免。

PS

关于CMS(Concurrent Mark-Sweep)并发垃圾收集器,以牺牲吞吐量为代价来获得最短回收停顿时间的垃圾回收器,适用于要求服务器响应速度的应用。标记-清除、垃圾回收都是多线程,应用只暂停很少时间。

关于并行垃圾收集器:标记-清除为单线程,回收仍为多个线程并发执行。应用暂停时间较长(相对于并发垃圾回收器)。

最新文章

  1. python学习 第一天
  2. Scalaz(27)- Inference & Unapply :类型的推导和匹配
  3. Yocto开发笔记之《快速入门,环境搭建 & 编译》(QQ交流群:519230208)
  4. U3D刚体测试2(ForceMode,AddForce,RelativeAddForce)
  5. GET请求和POST请求简单说明
  6. ajax 上传
  7. HTML5游戏开发_是男人就下100层
  8. Python学习 之 文件
  9. 转载:10 Easy Steps to a Complete Understanding of SQL
  10. python 10 min系列三之小爬虫(一)
  11. CSS3 3D旋转动画代码实例
  12. HDU1394(线段树||树状数组)
  13. ARM处理器:开放者的逆袭
  14. 企业级docker仓库Harbor部署
  15. 百度地图API的学习
  16. php发送短信验证码
  17. 20175224 2018-2019-2 《Java程序设计》第九周学习总结
  18. Kubernetes 服务入口管理 Traefik Ingress Controller
  19. 后台调用前端JS
  20. 关于UIPageViewController那些事

热门文章

  1. jquery 常用基础方法
  2. pwnable.kr-fd
  3. HTML中head里的内容经浏览器解析后全到body里
  4. iOS去除导航栏和tabbar的横线
  5. Excel 2007 批量删除隐藏的文本框[转]
  6. hdu 2084
  7. 2016 - 1 - 23 json解析
  8. JQuery正则验证
  9. codeforces 706D (字典树)
  10. UITableView 接口的调用顺序