为了账号安全,请及时绑定邮箱和手机立即绑定

【备战春招】第21天+G1调优和总结

标签:
Java

课程名称:Java生产环境下性能监控与调优详解

课程章节:第五章

主讲老师:若鱼1919

课程内容:

  1. G1调优最佳实践

    1. 年轻代大小:避免使用-Xmm,-XX:NewRatio等显式设置Young区大小,会覆盖暂停实践目标

    2. 暂停时间目标:暂停实践不要太苛刻,其吞吐量目标是90%的应用程序时间和10%的垃圾回收时间,太苛刻会直接影响到吞吐量

    3. G1相关调优参数

  2. 总结:

    1. 吞吐量

    2. 最大停顿时间

    3. JVM的各种垃圾回收器

    4. 评价垃圾回收器的性能的2个关键指标

    5. 如何对垃圾收集器进行调优

    6. 好好阅读官方文档

课程收获:

什么是方法区?
方法区(Method Area)是jvm规范里面的运行时数据区的一个组成部分,jvm规范中的运行时数据区还包含了:pc寄存器、虚拟机栈、堆、方法区、运行时常量池、本地方法栈。
方法区存储东西?
主要用来存储class、运行时常量池、字段、方法、代码、JIT代码等。
注意:
(1)运行时数据区跟内存不是一个概念。
(2)方法区是运行时数据区的一部分
(3)方法区是jvm规范中的一部分,并不是实际的实现,切忌将规范跟实现混为一谈。
我们再来看下永久带(Perm区):
永久带又叫Perm区,只存在于hotspot jvm中,并且只存在于jdk7和之前的版本中,jdk8中已经彻底移除了永久带,jdk8中引入了一个新的内存区域叫metaspace。
(1)并不是所有的jvm中都有永久带,ibm的j9,oracle的JRocket都没有永久带。
(2)永久带是实现层面的东西。
(3)永久带里面存的东西基本上就是方法区规定的那些东西。
因此,我们可以说,永久带是方法区的一种实现,当然,在hotspot jdk8中metaspace可以看成是方法区的一种实现。
结论:
(1)方法区是规范层面的东西,规定了这一个区域要存放哪些东西。
(2)永久带或者是metaspace是对方法区的不同实现,是实现层面的东西。
(3)打个比方,这个问题就类似于在问:汽车和奥迪A4L有啥区别?


https://img4.sycdn.imooc.com/63ea3c6d00011cb609090579.jpg



点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
6
获赞与收藏
5

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消