【ArchSummit】如何通过AIOps推动可量化的业务价值增长和效率提升?>>> 了解详情
写点什么

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:281049
用户头像

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

关注

评论

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

网络攻防学习笔记 Day44

穿过生命散发芬芳

网络攻防 6月日更

【音视频】基于声网的多人视频通话功能建设

轻口味

android 音视频 IM 声网

nacos配置中心模块详解

捉虫大师

nacos 配置中心

🍃【SpringBoot技术专题】「StateMachine」FSM状态机设计及实现

洛神灬殇

springboot 6月日更 状态机 StateMachine

Kubernetes手记(10)- POD 存储卷

雪雷

k8s 6月日更

算法之统计岛屿数量

Skysper

算法 深度优先搜索

架构实战营模块6作业

梦寐凯旋

#架构实战营

架构实战营 - 模块 6- 作业

请弄脏我的身体

架构实战营

Git 各指令的本质,真是通俗易懂啊

xcbeyond

6月日更

CSS 选择器总结

编程三昧

CSS html5 大前端 DIV+CSS CSS选择器

「SQL数据分析系列」2. 创建和使用数据库

数据与智能

数据库 语法

HarmonyOS的万里长征和万里长城

脑极体

五种服务部署升级策略,你也许会用的到

架构精进之路

6月日更 服务升级

【经验分享】RTC 技术系列之视频编解码

Hanson

音视频

ES2021 带来的新特性

KooFE

JavaScript 6月日更 ES2021

Single-Spa构建第一个微前端项目

devpoint

Vue 大前端 6月日更

中国数字化转型为全球带来机遇

CECBC

JavaScript学习(二)

空城机

JavaScript 大前端 6月日更

(VMware)ubuntu 环境下搭建docker环境

逸少

Docker Docker-compose vmware Ubuntu20.04

【Vue2.x 源码学习】第十三篇 - 生成 ast 语法树 - 正则说明

Brave

源码 vue2 6月日更

MySQL基础之十一:创建表

打工人!

MySQL 6月日更

这可能是介绍Android UvcCamera最详细的文章了

小驰笔记

android 音视频 UvcCamera 引航计划

【21-6】PushGateway快速上手

耳东@Erdong

Prometheus 6月日更 PushGateway

架构实战营-模块一作业

rubys_

架构实战营

☕【JVM技术探索】重塑虚拟机性能调优计划

洛神灬殇

JVM jvm调优 GC调优 6月日更

从零开始搭建一个个人博客网站--Task0

IT蜗壳-Tango

django IT蜗壳教学 6月日更 Datawhale

产品开发的过程

Qien Z.

运营管理 6月日更

LeetCode 每日一题「判定字符是否唯一」

陈皮的JavaLib

Java 算法 LeetCode

模块6作业

薛定谔的指南针

架构实战营

新手讲解this

前端树洞

JavaScript 面试 大前端 js

《原则》(十三)

Changing Lin

6月日更

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