一、GC性能指标
吞吐量:应用花在非GC上的时间百分比
GC负荷:与吞吐量相反,指应用花在GC上的时间百分比
暂停时间:应用花在GC stop-the-world的时间
GC频率
反应速度:从一个对象变成垃圾到这个对象被回收的时间
一个交互式的应用要求暂停时间越少越好,然而,一个非交互性的应用,当然是希望GC负荷越低越好
一个试试系统对暂停时间和GC负荷的要求,都是越低越好
一个嵌入式系统当然希望Footprint越小越好

二、内存容量配置原则
1、年轻代大小选择
响应时间优先的应用:尽可能设大,直接接近系统的最低响应时间限制(根据实际情况选择),在此种情况下,年轻代手机发生的频率也是最小的
同时,减少到达老年代的对象。
吞吐量优先的应用:尽可能的设置大,可能达到Gbit的程度,因为响应时间没有要求,垃圾收集可以并行进行,一般8CPU以上的应用
避免设置过小,当新生代设置过小时会导致:
1、YGC次数更加频繁
2、可能导致YGC对象直接进入老年代,如果此时老年代满了,会触发FGC
2、老年代大小选择
响应时间优先的应用:老年代使用并发收集器,所以其大小需要小心设置,一般要考虑并发回话率和会话持续时间等一些参数,如果堆设置小了,可能会造成内存碎片,
高回收频率以及应用暂停而使用传统的标记清除方式;如果堆大了,则需要较长的收集时间,最优化的方案,一般需要参考以下数据获得:
1、并发垃圾收集信息,持久代并发收集次数、传统GC信息、花在年轻代和老年代回收上的时间比例。
2、吞吐量优先的应用:一般吞吐量优先的应用都有一个很大的年轻代和一个较小的老年代,原因是:可以尽可能回收掉大部分短期对象,减少中期的对象
而老年代尽存放长期存活对象

GC的性能指标和内存容量配置原则的更多相关文章

  1. .NET Core 配置GC工作模式与内存的影响

    .NET Core 配置GC工作模式与内存的影响 .NET Core GC 原文:https://blog.markvincze.com/troubleshooting-high-memory-usa ...

  2. JVM 的 Xms 和 Xmx 设置一样大小的内存容量

    4. [推荐]在线上生产环境,JVM 的 Xms 和 Xmx 设置一样大小的内存容量,避免在 GC 后调整堆 大小带来的压力. 现在,我们知道了Elasticsearch所公开的缓存和缓冲区,可以尝试 ...

  3. JVM内存调优原则及几种JVM内存调优方法

      转载,如需帮助,请联系wlgchun@163.com https://blog.csdn.net/LeegooWang/article/details/88696195 如何对JVM进行内存调优? ...

  4. JAVA 从GC日志分析堆内存 第七节

    JAVA 从GC日志分析堆内存 第七节   在上一章中,我们只设置了整个堆的内存大小.但是我们知道,堆又分为了新生代,年老代.他们之间的内存怎么分配呢?新生代又分为Eden和Survivor,他们的比 ...

  5. JVM学习02:GC垃圾回收和内存分配

    JVM学习02:GC垃圾回收和内存分配 写在前面:本系列分享主要参考资料是  周志明老师的<深入理解Java虚拟机>第二版. GC垃圾回收和内存分配知识要点Xmind梳理 案例分析1-(G ...

  6. JAVA JVM常见内存参数配置简析

    JVM常见内存参数配置简析   常见参数 -Xms .-Xmx.-XX:newSize.-XX:MaxnewSize.-Xmn(-XX:newSize.-XX:MaxnewSize) 简析 1.-Xm ...

  7. Java内存模型相关原则详解

    在<Java内存模型(JMM)详解>一文中我们已经讲到了Java内存模型的基本结构以及相关操作和规则.而Java内存模型又是围绕着在并发过程中如何处理原子性.可见性以及有序性这三个特征来构 ...

  8. 垃圾回收GC:.Net自己主动内存管理 上(一)内存分配

    垃圾回收GC:.Net自己主动内存管理 上(一)内存分配 垃圾回收GC:.Net自己主动内存管理 上(一)内存分配 垃圾回收GC:.Net自己主动内存管理 上(二)内存算法 垃圾回收GC:.Net自己 ...

  9. GC与显式内存管理

    C++复兴的话题至今已被鼓吹两年有余,Herb Sutter和Bjarne Stroustrup等大牛们也为C++带来了大步伐的革新.然而,从这两年的效果而言,C++的复兴并没有发生.一方面随着世界经 ...

随机推荐

  1. asp.net 导出EXCEL超高兼容(不用装Excel)

    用网上的代码你会发现,下载下来后,会提示"你尝试打开的的文件的格式与文件扩展名指定的格式不一致 请验证文件没有损坏且来源可信的提示,研究了好久 后来发现可以使用人家做好的组件NOPI去实现, ...

  2. CentOS下yum安装PostgreSQL

    关键词:centos install PostgreSQL Configure YUM repository vim /etc/yum.repos.d/CentOS-Base.repo [base] ...

  3. Dubbo (开源分布式服务框架)

    Provider 暴露服务方称之为“服务提供者”. Consumer 调用远程服务方称之为“服务消费者”. Registry 服务注册与发现的中心目录服务称之为“服务注册中心”. Monitor 统计 ...

  4. MATLAB中TXT数据文件读取并写入元胞数组的方法与步骤

    一. TXT数据文件读取 Data = load('train.txt');   %简单的文件读取,这时在工作区可以看到导入的大数据变量Data 二.大数据变量Data装入元胞数组中 D = cell ...

  5. ThinkPHP项目笔记之登录,注册,安全退出篇

    1.先说注册 a.准备好注册页面,register.html,当然一般有,姓名,邮箱,地址等常用的. b."不要相信用户提交的一切数据",安全,安全是第一位的.所以要做判断,客户端 ...

  6. shell命令技巧——文本去重并保持原有顺序

    简单来说,这个技巧相应的是例如以下一种场景 假设有文本例如以下 cccc aaaa bbbb dddd bbbb cccc aaaa 如今须要对它进行去重处理.这个非常easy,sort -u就能够搞 ...

  7. 获取软件的apk包名、查看手机设备名称等

    获取软件的apk包名 1.下载aapt,这里使用的是SDK自带的aapt,找到SDK路径下面的aapt.exe,本机路径:E:\downloads\android-sdk_r23.0.2-window ...

  8. ArcGIS 空间数据库备份

    Expdp system/ddd@orcl directory=sdebak dumpfile=20170124_1_ServerBak.dmp schemas=(sde, ddd)

  9. OSG简单测试框架

    #include <osgDB/ReadFile> #include <osgDB/FileUtils> #include <osg/ArgumentParser> ...

  10. python学习【第一篇】python介绍

    python发展历史 起源 Python的作者,Guido von Rossum,荷兰人.1982年,Guido从阿姆斯特丹大学获得了数学和计算机硕士学位.然而,尽管他算得上是一位数学家,但他更加享受 ...