开发四年只会写业务代码,分布式高并发都不会还做程序员?  

之前我们报导过 JDK 11 进入特性冻结阶段,今天来看看 JEP 333 为了大幅减少 GC 暂停时间的可伸缩低延迟垃圾回收器 ZGC(Scalable Low-Latency Garbage Collector )。

GC 一直以来是 Java 的主要优势之一,但是,当垃圾回收暂停时间过长时,会对应用程序的响应时间产生负面影响,而现代系统中可用的内存量不断增长,用户和应用开发人员希望 JVM 能够以高效的方式充分利用此内存,并且不要有过长的 GC 暂停时间。此次将新增的 ZGC 功能,能够消除或大幅缩短 GC 暂停的时间。

ZGC 有以下几个目标:

  • GC 暂停时间不应超过 10 ms

  • 处理堆的大小范围从相对较小(几百 M)到非常大(几 T)不等

  • 与使用 G1 相比,应用程序吞吐量减少不超过 15%

  • 为未来的 GC 功能和优化利用有色指针(colored pointers)和加载屏障(load barriers)奠定基础

  • 初始支持平台:Linux/x64

ZGC 是一个并发的、单代的、基于区域的、NUMA 感知的压缩收集器,Stop-the-world 阶段仅限于根扫描,因此 GC 暂停时间不会随堆或活动集(live set)的变大而增加。

ZGC 的核心设计原则/选择是将加载屏障与有色对象指针(colored oops)结合使用,这使得 ZGC 能够在 Java 应用程序线程运行时执行并发操作,例如对象重定向。从 Java 线程的角度来看,在 Java 对象中加载引用字段的行为受到加载屏障的影响。除了对象地址之外,colored oops 还包含加载屏障使用的信息,以确定在允许 Java 线程使用指针之前是否需要采取某些操作。例如,对象有可能已经被重定向,那么加载屏障将对此进行检测并采取适当的操作。

JEP 333 还展示了 ZGC 的性能等详细信息,访问 http://openjdk.java.net/jeps/333 查看。

JDK 11 将引入低延迟 GC,大幅度缩短 GC 暂停时长相关推荐

  1. JDK 11 将引入低延迟 GC,大幅度缩短 GC 暂停时长

    点击上方"程序员大咖",选择"置顶公众号" 关键时刻,第一时间送达! 先不说楚枫的这般年纪,能够踏入元武一重说明了什么,最主要的是,楚枫在刚刚踏入核心地带时,明 ...

  2. 全网最全高性能蓝牙耳机盘点,双11十大低延迟蓝牙耳机排行榜

    在路上.地铁里或是健身房,真无线耳机出现的频率越来越高.当无线成为标配,也就是时候提出更多.更高的要求了.例如更好的音质,更长续航,更轻便舒适的佩戴体验,乃至更强大的语音助手等具体而实用的要求. 但是 ...

  3. 高吞吐、低延迟 Java 应用的 GC 优化实践

    2019独角兽企业重金招聘Python工程师标准>>> 背景 高性能应用构成了现代网络的支柱.LinkedIn 内部有许多高吞吐量服务来满足每秒成千上万的用户请求.为了获得最佳的用户 ...

  4. 玩王者吃鸡再也不怕画音不同步了,双11五款低延迟高清音效蓝牙耳机推荐

    玩游戏的人越来越多,问我游戏耳机如何选购的也越来越多.所以小编特意总结了这个手游最强蓝牙耳机榜单.而为什么又是蓝牙耳机呢?因为现在手游确实越来越火,占比也越来越高,而蓝牙耳机的火爆程度也不相上下,所以 ...

  5. 高清音质媲美HIFI,双11高性价比低延迟蓝牙耳机推荐

    随着技术的进步,我们更习惯于使用无线蓝牙耳机了,使用时不再受耳机线的约束,让我们无论运动通勤还是休闲娱乐都更方便.更享受.对于游戏方面免去了线材的束缚,玩得更尽兴,尤其是type-c充电口当道的时代, ...

  6. 蓝牙耳机何时成为手游最佳搭档?双11五款低延迟真无线蓝牙耳机推荐

    自1937年被发明而来,"耳机"这个产品已经拥有超过80年的历史.从一开始的将影院技术用在个人音频产品的制作,到现在耳机已经衍生出不同的形态,服务于不同的领域中,耳机产品的发展有目 ...

  7. 「JVM 内存管理」低延迟的 Shenandoah GC 与 ZGC

    同时在内存占用(Footprint),吞吐量(Throughput),延迟(Latency)三方面表现得最优,才能称得上完美的垃圾收集器,但这几乎是不可能的(不可能三角,三元悖论,通常最多可以兼顾两项 ...

  8. 高吞吐低延迟Java应用的垃圾回收优化

    高吞吐低延迟Java应用的垃圾回收优化 高性能应用构成了现代网络的支柱.LinkedIn有许多内部高吞吐量服务来满足每秒数千次的用户请求.要优化用户体验,低延迟地响应这些请求非常重要. 比如说,用户经 ...

  9. 设置好MTU数值与DNS服务器达到低延迟零丢包率

    教你设置好MTU数值与DNS服务器达到低延迟零丢包率 文章很长,希望大家耐心阅读,这能优化你的网络质量. 丢包率.延迟是评价一条宽带网路素质好坏的常用标准,大丢包率或者大延迟必然严重影响上网体验,而大 ...

最新文章

  1. Mac中安装node.js和npm
  2. SCOPE_IDENTITY 和 @@IDENTITY 的区别
  3. python中os.path和pathlib
  4. 【STM32】STLINK调试程序教程
  5. VBA实战技巧精粹011:新建只有1张工作表的工作簿
  6. c++ 与 java_Java与C++比较
  7. Perhaps you are running on a JRE rather than a JDK? 关于 idea maven 缓存的问题 清理 idea maven 缓存
  8. zynq linux网口不通,已解决: ZYNQ 7035以太网口无法连通 - Community Forums
  9. sync不生效 vue_Vue实战项目-记账器-重要知识点汇总
  10. java.sql.SQLIntegrityConstraintViolationException: Cannot add or update a child row: a foreign key c
  11. Python打包 pyinstaller
  12. 消息队列面试 - 如何保证消息的可靠性传输?
  13. Linux 安装 Pycharm
  14. js实现的单机双人象棋演示及其分析
  15. 用python进行因式分解_Python实现的质因式分解算法示例
  16. 如何才能不改变图片的像素大小,只改变图片的文件大小
  17. php主机安装教程,easypanel 主机面板安装教程
  18. AD中使用Net Label时,编译时为什么总是Floating。出现的原因。
  19. 与、或、非、与非、或非、异或、同或
  20. 翻译: 2.7. 如何利用帮助文档 深入神经网络 pytorch

热门文章

  1. 黄聪:Python中的__metaclass__=type什么意思?
  2. OpenSolaris安装JDK以及配置java开发环境
  3. Poj(3615),Floyd,最大值中的最小值
  4. OpenCV成长之路:直线、轮廓的提取与描述
  5. 因特网几个“特殊”IP地址的专门用途
  6. ShardingSphere(八) 分库分表的多种分片策略
  7. Dubbo(十一)dubbo的超时重试配置以及启动检查
  8. consulAPI服务的注册源码
  9. map to javaBean
  10. RabbitAdmin 实战