50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

Ruby VM 综述:MacRuby 0.8、Rubinius 1.2、MRI 1.8.7 及 1.9.2 更新

  • 2010-12-29
  • 本文字数:890 字

    阅读完需:约 3 分钟

目前,Ruby VM 正以稳健的步伐前进着,前几周又有很多新发布。

近日, Rubinius 1.2 发布了,在内存效率与调试方面带来了很多改进。Evan Phoenix详细介绍了 Rubinius 1.2 的众多改变,比如每个对象的内存使用等:

我们集中精力改进每个对象的内存使用。特别是对象如何在内存中存储其实例变量。由于 Ruby 并不需要声明实例变量,因此建模实例变量最简单的方式就是使用散列。这正是 Rubinius 过去的做法。问题出在拥有少量实例变量的类上。在这种情况下,散列表的尺寸就变得很重要了,为了存储一个字(4 或 8 个字节),就需要使用 100 个字节的内存。 新的代码基于对类的一个很容易观察到的假设,换句话说,在创建类的实例前它会定义好绝大多数方法(通常是所有方法)。我们在创建好类的一个实例后就运行一些代码,它会查找该实例可用的所有方法。这意味着所有方法都定义在类本身、父类以及混合在模块中。我们通过这些方法构建出他们所用的所有的实例变量表。

现在,我们可以很清楚地计算出这个类的实例到底需要占据多少内存,这样就可以将实例变量存储到内存中而无需散列表了。通过这种方式,内存的使用从 100 个字节下降到了 8 个字节(在 64 位机器上)。

长久以来,Rubinius 一直拥有一个强大的 Debugger API,现在 Rubinius 1.2 增加了 ruby-debug 支持。调试内存使用或内存泄漏问题是由堆转储特性所支持的,可以使用 Rubinius::VM.dump_heap("/path/to/file") 实现。创建堆转储的另外一种方式是使用 Rubinius 的另一个特性:Query Agent,监测工具可以凭借它访问 Rubinius 信息并触发某些动作。

MacRuby 0.8 也于近日发布了,主要改进了稳定性与兼容性问题。该项目现在集中于 1.0 版的发布:

从现在开始,我们的发布频率要比以前快很多。我们希望用户能够更频繁地测试 MacRuby 并报告更多的 Bug。 然而,我们并不期望在随后的发布中引入重要的特性,因为现在我们都将精力放在了稳定性和兼容性问题上了。

最后,旧版与新版的 MRI 都发布了补丁版本: MRI 1.8.7 with p330 以及 1.9.2 with p136,后者是暨 1.9.2 发布之后的首次更新

查看英文原文: Ruby VM Roundup: MacRuby 0.8, Rubinius 1.2, MRI 1.8.7 and 1.9.2 Updates

2010-12-29 09:281238
用户头像

发布了 88 篇内容, 共 272.2 次阅读, 收获喜欢 9 次。

关注

评论

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

是谁的请求导致我的系统一直抛异常?

阿里巴巴云原生

阿里云 微服务 云原生

【愚公系列】2022年11月 微信小程序-app.json配置属性之tabBar

愚公搬代码

11月月更

HMS Core的AI之力与开发者的英雄本色

脑极体

下一代龙蜥操作系统 Anolis OS 23 公测版正式发布|2022云栖龙蜥实录

OpenAnolis小助手

开源社区 龙蜥操作系统 分层分类 2022云栖大会 Anolis23

手动在CentOS7.4环境下,安装MySQL5.7.X版本的方法。

@下一站

MySQL 程序猿 11月月更

vue数据代理

我搬去水星了

vue cli 11月日更 11月月更

C++语言基础篇

叶秋学长

c++ 程序员 面经 11月月更

Web 实时通信技术WebRTC

devpoint

WebRTC 11月月更

利刃出鞘 | 从五大核心技术来看Bonree ONE 2.0的全球竞争力

博睿数据

可观测性 核心技术 智能运维 博睿数据 ONE平台

Prometheus Native Histograms 实现原理及应用

Grafana 爱好者

云原生 可观测性 Prometheus 11月月更

简单概述理解vue的MVVM模型

张三丰无极

vue cli 11月日更 11月月更

大数据技术&面试 资料分享

大数据阶梯之路

大数据 面试 数据仓库 资料整理 资料分享

跟着卷卷龙一起学Camera--低延迟03

卷卷龙

ISP camera 11月月更

网课爆破是网络暴力的缩影,如何有效打击网曝行为

石头IT视角

Apache Doris Join 实现与调优实践|未来源码

MobTech袤博科技

让开发者成为决定性力量,华为开发者英雄汇圆满落幕

华为云开发者联盟

云计算 华为云 企业号十月 PK 榜

Vue基础学习(三)

Studying_swz

Vue 11月月更

体验不尽,进化不止,看视频云技术六大创新

阿里云CloudImagine

阿里云 视频云 云栖大会 2022云栖大会

跟着卷卷龙一起学Camera--低延迟04

卷卷龙

ISP camera 11月月更

文档管理系统平台:实现文档管理现代化

Baklib

华为全联接2022 openEuler 累计装机量达 245 万套,市场份额 22%,助力企业高效进行操作系统迁移

极客天地

什么是API

阿泽🧸

API 11月月更

如何解决产品知识培训问题?

Baklib

基于HTML5的爱心表白动画特效

芯动大师

HTML5, CSS3 11月月更 爱心代码

2022-11-10:写一个 bash 脚本以统计一个文本文件 words.txt 中每个单词出现的频率。 为了简单起见,你可以假设: words.txt只包括小写字母和 ‘ ‘ 。 每个单词只由小写

福大大架构师每日一题

bash Shell 福大大

化繁为简|AIRIOT智慧水务信息化建设解决方案

AIRIOT

物联网 智慧水务

【iOS逆向】小陈手牵手带你看懂iOS伪代码

小陈

移动安全 iOS逆向 ios安全

为什么要做数据分析

穿过生命散发芬芳

数据分析 11月月更

算法题学习---判断链表中是否有环

桑榆

算法题 11月月更

世界杯叠加购物节日,预计用户消费和品牌营销将迎来大幅增长

易观分析

泛内容

Ruby VM综述:MacRuby 0.8、Rubinius 1.2、MRI 1.8.7及1.9.2更新_Ruby_Werner Schuster_InfoQ精选文章