教年轻 AIoT 创业者如何从 0 到 1 实现AIoT 创业项目 了解详情
写点什么

Ruby 2.1 迁到分代式垃圾收集,以应对其在大规模部署方面所遭受的批评

  • 2013-09-20
  • 本文字数:861 字

    阅读完需:约 3 分钟

Ruby 的创建者 Matz 于上周末在 Baruco (Barcelona Ruby 会议)上宣布, Ruby MRI 2.1 将迁到分代式垃圾收集(GC),此举有望成为这门语言的一项重要性能提升。Ruby 2.1 预计在今年年底前发布。

巧合的是,在当天的另一场演讲中,Github 的 Vicent Marti 强烈地批评了 Ruby MRI 的垃圾收集实现方式,将当前的标记& 清除算法称为“双头怪兽”。Vicent 阐述了Ruby GC 的局限性如何经常影响Github 这样一个大规模的Ruby 部署。

一方面是由于标记阶段缓慢(这一阶段实际上会停止应用程序,并顺序遍历整个对象图以确定活动对象)。另一方面是由于清除阶段不准确,它可能最终清除实际上仍在使用的C 扩展(或C 扩展指向的)Ruby 对象。

Vicent 提到,使用诸如 Valgrind 这样的工具或者预先执行静态分析有助于减少此类问题,但他也强调,Ruby MRI 目前的 GC 实现方式存在根本缺陷,并建议,一旦 JRuby Rubinius 实现了与 MRI 同样的功能集,就将大规模的 Ruby 部署向 JRuby 或 Rubinius 迁移。

在 Ruby 目前的 GC 实现方式速度慢这一点上,New Relic 的 Chris Kelly 演讲中表达了同样的观点,并强调,一个典型的Rails 应用程序启动时会加载成千上万的对象,而GC 执行的标记阶段需要对这些对象进行一遍又一遍地分析。不过,Chris 也与大家分享了 New Relic 的 Ruby GC 基本问题测试结果,在 Ruby 1.8 和 1.9 之间,执行垃圾收集的时间减少了 48%。

据 Chris 说,这表明 MRI 团队正在进行重大改进以升级 Ruby 在这方面的实现方式,尤其是宣布迁到分代式垃圾收集(据 Matz 说,此举有望将标记阶段耗时减少一半)。

在有些演讲中还有一些批评是关于缺少 Ruby MRI 垃圾收集实现方式方面的英文文档,而 Chris 在其演示文稿中列出了一些推荐内容,如“罕见的GC 探讨”。

Matz 还宣布了 Ruby 2.1 的其它一些功能增强,包括字符前缀(“i”表示 complex 数字、“r”表示 rational 数字、“f”代表 frozen 字符串)、 refinements (全功能)和更快(大约 15%)的 RDoc 文档生成速度。

查看英文原文:**** Ruby 2.1 Garbage Collection to Address Criticism on Large Scale Deployments

活动推荐:

2023年9月3-5日,「QCon全球软件开发大会·北京站」 将在北京•富力万丽酒店举办。此次大会以「启航·AIGC软件工程变革」为主题,策划了大前端融合提效、大模型应用落地、面向 AI 的存储、AIGC 浪潮下的研发效能提升、LLMOps、异构算力、微服务架构治理、业务安全技术、构建未来软件的编程语言、FinOps 等近30个精彩专题。咨询购票可联系票务经理 18514549229(微信同手机号)。

2013-09-20 23:492752
用户头像

发布了 256 篇内容, 共 78.2 次阅读, 收获喜欢 11 次。

关注

评论

发布
暂无评论
发现更多内容

架构师训练营第六周总结

一剑

2020-07-11-第六周作业

路易斯李李李

1. react起始 | 2020年前端再入门系列连载

chaozh

大前端 React

记一次Apache的代码导致生产问题

java金融

Java Apache spring BeanUtils

数据结构学习心得

程李文华

分布式系统架构作业

qihuajun

LeetCode题解:15. 三数之和,JavaScript双循环+HashMap,详细注释

Lee Chen

大前端 LeetCode

用Roslyn做个JIT的AOP

八苦-瞿昙

技术 随笔杂谈 aop 代理 框架

区块链扩张路径变局:从技术比拼转向生态落地

CECBC

第6周课后练习-请简述CAP原理

Dawn

极客大学架构师训练营

第6周总结

andy

CAP Theorem

dongge

面向对象编程学习

一叶知秋

java 后端博客系统文章系统——No5

猿灯塔

Java

对CAP的理解

朱月俊

第六周总结

秦宝齐

作业

架构师训练营 Week 06 总结

Wancho

架构设计篇之中台战略思想与落地

小诚信驿站

架构设计 刘晓成 中台战略 服务化改造

week6.课后作业

个人练习生niki👍

极客大学架构师训练营

架构师训练营第 6 周作业二

不谈

架构师训练营第六周作业

R20114

极客大学架构师训练营

架构师训练营 Week 06 作业

Wancho

架构师训练营第六周作业

一剑

Rust所有权,可转可借

袁承兴

rust 指针 函数调用 引用 内存管理

CAP原理

chenzt

用“实例化需求”,让需求澄清更高效

小隐乐乐

分布式系统架构学习总结(分布式数据库和NoSQL)

qihuajun

Week 6 作业

Shawn

你要的《Spring系列源码解读》PDF它来了

z小赵

Java spring

第六周作业

秦宝齐

学习 极客大学架构师训练营

React与前端开发发展史

pingan8787

  • 扫码添加小助手
    领取最新资料包
Ruby 2.1迁到分代式垃圾收集,以应对其在大规模部署方面所遭受的批评_Ruby_Manuel Pais_InfoQ精选文章