资讯专栏INFORMATION COLUMN

JVM体系结构与GC调优(二)

DirtyMind / 3340人阅读

摘要:在设计堆的大小时。设计为比更大的数前提是内存允许。这样既可以降低堆调整的频率,还可以提高系统的负载能力新生代调优大小增大区。因为时间跟存活对象成正比新生代调优晋升尽可能让对象停留在中。

jvm支持的垃圾收集器组合

组合选择的标准

吞吐量=应用运行时间/总时间
关注gc总耗时

暂停时间
关注每次gc的耗时

组合选择的场景

堆的调优

一般来说,堆越大越好(gc频率小,但单次gc时间变长)

设置参数 -xms 堆的最小值 -xmx 堆的最大值 每次调整堆大小都会发生fullgc

思考:如果为了不发生fullgc,是否就总是设置-xms = -xmx

答案:不是。在设计堆的大小时。设置-xms为预期堆内存。 -xmx设计为比-xms更大的数(前提是内存允许)。这样既可以降低堆调整的频率,还可以提高系统的负载能力

新生代调优--大小

增大eden区。(减少gc频率,不一定增大gc时间。因为时间跟存活对象成正比)

新生代调优--晋升

尽可能让对象停留在survivor中。降低majorgc的频率

但是要避免对象在survivor中不断复制

设置对象晋升年龄的极限值,没熬过一次gc,年龄就+1。到达极限值就晋升(但不绝对)

旧生代调优

调优尽量先调新生代

平衡老年代的大小,不能太大或太小

直接加cpu,来的最快

调优工具

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/69517.html

相关文章

  • jvm体系结构gc调优(一)

    摘要:做好的优化能大大提升系统的性能体系结构概览大致流程如图编译好的文件通过类加载器从物理结构转换成运行时数据区结构。后面再写一篇关于调优的 什么是jvm jvm是java虚拟机的缩写。所有的java程序都是在jvm上运行的。做好jvm的优化能大大提升系统的性能 jvm体系结构概览 showImg(https://segmentfault.com/img/bVba5lB?w=1049&h=6...

    wupengyu 评论0 收藏0
  • 面试官问我JVM调优,我忍不住了!

    面试官:今天要不来聊聊JVM调优相关的吧?面试官:你曾经在生产环境下有过调优JVM的经历吗?候选者:没有面试官:...候选者:嗯...是这样的,我们一般优化系统的思路是这样的候选者:1. 一般来说关系型数据库是先到瓶颈,首先排查是否为数据库的问题候选者:(这个过程中就需要评估自己建的索引是否合理、是否需要引入分布式缓存、是否需要分库分表等等)候选者:2. 然后,我们会考虑是否需要扩容(横向和纵向都...

    不知名网友 评论0 收藏0
  • jvm调优

    摘要:一内存调优主要的目的是减小的频率和的次数。调优工具之主要用来输出中运行的进程状态信息。调优工具之和用来查看堆内存使用状况,一般结合使用。 一、jvm内存调优 主要的...

    snowLu 评论0 收藏0
  • [译]GC专家系列3-GC调优

    摘要:原文链接本篇是专家系列的第三篇。但是,请记住调优是不得已时的选择。缩短耗时的单次执行与相比,耗时有较明显的增加。创建文件过程中,进程会中断,因此不要在正常运行时系统上做此操作。因此校验结果并根据具体的服务需要,决定是否要进行调优。 原文链接:http://www.cubrid.org/blog/dev-platform/how-to-tune-java-garbage-collecti...

    leap_frog 评论0 收藏0
  • 金三银四面试季节之Java 核心面试技术点 - JVM 小结

    摘要:直接对栈的操作只有两个,就是对栈帧的压栈和出栈。中将永久代移除,同时增加元数据区。在中,本地方法栈和虚拟机栈是在同一块儿区域,这完全取决于技术实现的决定,并未在规范中强制。 原文:https://github.com/linsheng97... 描述一下 JVM 的内存区域 程序计数器(PC,Program Counter Register)。在 JVM 规范中,每个线程都有它自己的...

    XGBCCC 评论0 收藏0

发表评论

0条评论

DirtyMind

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<