写点什么

Ruby 2.1 发布,带来新的垃圾收集器

2013 年 12 月 31 日

Ruby 2.1 正式版已经发布,带来了很多预期的改进,其中包括对垃圾收集器的大幅改动,这一改进将在现在和未来带来一些性能提升。

Ruby 2.1 中的垃圾收集器实现了一种分代垃圾收集形式,Ruby 把它的这种实现称为“RGenGC(Restricted Generational Garbage Collection)”。它替换了 Ruby 之前版本中采用的“Mark & Sweep(标记与清除)”实现。Ruby 开发者 Koichi Sasada 在 2013 年 4 月的一次演讲中提到,对 Ruby 开发者而言,挑战在于实现一个可以在同一堆内处理保护对象和非安全对象的 GC 算法。

因为重写所有现有的 C 扩展以利用新的 GC 并不现实,所以作为实现的一部分,RGenGC 实现中使用了写屏障(Write-Barrier)。就像 Sasada 在 RubyConf 2013 的演进( PDF )中所解释的那样,最初的两种选择是:A) 根本不实现分代垃圾收集(与 Ruby 2.0 和之前版本中的做法一样),或 B) 实现分代垃圾收集,同时需要重写所有 C 扩展。RGenGC 在这两种选择之外提供了第三种方式。

RGenGC 与现有扩展高度兼容,同时仍然带来了性能提升。常用的 Array、String、Hash、Object 和 Numeric 等对象都有写屏障保护,因此能够利用 RGenGC 系统。未来在内部库和外部库上的工作也为以后进一步改进性能带来了可能性。

新的垃圾收集系统不是唯一的改进,其他改进包括 RDoc 4.1.0、RubyGems 2.2.0 以及一些库的更新。完整的改进列表请参见该项目 GitHub 页面的发布说明

查看英文原文: Ruby 2.1.0 Released, Delivering new GC

2013 年 12 月 31 日 04:191496
用户头像
臧秀涛 极客邦科技技术会议负责人

发布了 300 篇内容, 共 114.2 次阅读, 收获喜欢 21 次。

关注

评论

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

TOGAF实用教程(IT帮)

周金根

编程核心能力之重构

顿晓

学习 重构

区块链如何切入供应链金融市场?

CECBC区块链专委会

Unix路径是如何简化算法,架构师性能优化 John 易筋 ARTS 打卡 Week 10

John(易筋)

ARTS 打卡计划

在线互动课堂低延迟交互利器:高性能异步化设计与监控

SocketSide

线程模型 异步 Task 在线课堂

Zookeeper从入门到放弃之Zookeeper典型应用场景

小隐乐乐

zookeeper 分布式 分布式锁

LeetCode题解:206. 反转链表,JavaScript,While循环迭代,详细注释

Lee Chen

LeetCode 前端进阶训练营

没想到 Hash 冲突还能这么玩,你的服务中招了吗?

石头

Java 安全攻防 hashmap hash 后端开发

OMG组织的企业架构建模规范

周金根

一文了解JDK12 13 14 GC调优秘籍-附PDF下载

程序那些事

GC JDK14 秘籍 JDK12 JDK13

【API进阶之路】无法想象!大龄码农的硬盘里有这么多宝藏

华为云开发者社区

容器 层次 API 网关 华为云

设计模式之外观模式解析

七哥爱编程

程序员 设计模式 外观模式

癌症筛查清单

Lee Chen

随笔杂谈 前端进阶训练营

浅析区块链如何改变生活

CECBC区块链专委会

数字银行 供应链 身体监测 资产管理

股权交易中心+区块链试点将开始

CECBC区块链专委会

防篡改 股权交易 可追溯 信息存证

Java架构-代码分层的设计之道

我是苞谷

拥抱400GE新引擎,跨越新基建的时代龙门

脑极体

如何去学好JS的8条小建议

华为云开发者社区

html 编程 前端开发 js 代码

ARTS WEEK6

紫枫

ARTS 打卡计划

Java架构-不要成为项目风险的奴隶

我是苞谷

Java

Golang新手常犯错误之【循环迭代篇】

卓丁

golang新手 常见错误 引用迭代

应用程序研发之基础知识分层与进化

superman

高并发系统设计要点

南方有乔木兮

Java

JVM系列-读懂 GC 日志

Rayjun

Java JVM GC

影响企业架构项目成功的8个重要步骤

周金根

安全系列之——RSA的前世今生

诸葛小猿

安全 加密解密 非对称加密 rsa

搞事情?Spring Boot今天一口气发布三个版本

YourBatman

Spring Boot 新特性

企业架构实施简介

周金根

比 996 更可怕的是职场 PUA

非著名程序员

职场 职场成长 职场误区 职场 PUA

面试题:Java 中的 ==, equals 与 hashCode 的区别与联系

简爱W

性能测试 + 操作系统 + 锁

王鹏飞

InfoQ 极客传媒开发者生态共创计划线上发布会

InfoQ 极客传媒开发者生态共创计划线上发布会

Ruby 2.1发布,带来新的垃圾收集器-InfoQ