HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

1.8.x 的新修复解决了内存泄漏问题并改进了性能

  • 2009-01-08
  • 本文字数:826 字

    阅读完需:约 3 分钟

就性能而言,目前 Ruby 1.9.1 和 JRuby 领导着 Ruby 的实现。然而由于种种原因,转到这两个实现中的任何一个都不是那么容易的事情,因为 Ruby 1.9.x 在有些地方与 1.8.7 不兼容,同时 JRuby 仍旧缺乏一些使用本地扩展的 Ruby 库。由于这个原因,MRI 1.8.x 还会继续存在一段时间,那么我们可能对其性能的改进产生兴趣。

目前 Brent Roman 在一定程度上改进了 Ruby 1.8.x MRI 的性能。他正不断尝试着修复 Ruby 中的内存泄漏问题

基本的技术就是对 Kurt Stephens 所建议的一个问题的精化。它不仅消除了这行代码的泄漏问题: loop {@x=callcc{|c|c}} 还消除了我们多线程机器人技术应用中的泄漏问题。过去我们所使用的 Ruby 进程在运行一天后常常达到 20+MB,而现在已经降到了 10MB 以下。

正如其所示,泄漏是由 GCC 的优化所导致的:它与 Ruby 的旧式 GC 的交互很差劲

垃圾收集器的内存泄漏问题并不是它本身的错误。问题在于“C”机器栈(machine stack)中充满了对象引用。其主要原因是由于 gcc 编译器创建了过多大的 stack frame 而又没有对其初始化。用在 Ruby 解释器的核心递归表达式程序中的某些“C”构造会生成特别大而又稀疏的 stack frame。函数 rb_eval() 就是最差劲的一个,它会为每次调用都创建 KB 大小的 stack frame,而其又会调用自身几百次。这导致栈的容量急剧膨胀,经常充满了不再使用而又无法移除的对象引用。

Brent提供了一些修复(针对Ruby 1.8.7-patlevel72),目的在于解决这些问题。

当运行在真实世界的Rails 应用上时,测试报告表明该修复对速度的提升效果很明显。同时也报告了一些问题,让我们对其拭目以待吧。

这些修复是开源(Ruby)社区对MRI 改进的又一个证明。 Mod_rails (或 REE) 已经是一个佐证了,它使得 MRI 的垃圾收集器更加友好(参见相关新闻以了解更多)。

MRI 的性能在很大程度上取决于它的编译方式

今年你还打算继续使用Ruby 1.8.x 么?如果是的话,理由呢?

查看英文原文: New Patches for 1.8.x Fix Memory Leaks And Improve Performance

2009-01-08 12:24580
用户头像

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

关注

评论

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

ARTS-WEEK1 —— 23.8.14~23.8.20

EchoZhou

NineData成功通过AWS FTR认证,一款值得信赖的数据管理工具!

NineData

数据库 AWS 数据管理 NineData FTR 认证

Spring高手之路12——BeanDefinitionRegistry与BeanDefinition合并解析

砖业洋__

spring BeanDefinition BeanDefinitionRegistry BeanDefinition合并

九科信息成功签约中交财资管理(香港)有限公司-境外银行账户可视化管控流程自动化系统项目

九科Ninetech

浅析分布式系统之体系结构 一致性的实现-- 共识

snlfsnef

分布式 系统设计 数据一致性 共识机制 深入理解分布式共识算法

大数据平台是什么意思?有什么用?一般包含哪些模块?

行云管家

数据安全 大数据平台

阿里云产品测评赢大奖丨云原生网关 MSE-Higress

阿里巴巴云原生

阿里云 微服务 云原生

开发者不需要成为 K8s 专家!!!

北京好雨科技有限公司

Kubernetes 开发者 PaaS #云原生

手把手带你玩转HetuEngine:资源规划与数据源对接

华为云开发者联盟

大数据 后端 华为云 华为云开发者联盟 企业号 8 月 PK 榜

22. 面向对象 - 高阶

茶桁

Python 面向对象 oop

Mac端视频动态壁纸 Dynamic Wallpaper 中文最新

胖墩儿不胖y

Mac软件 动态桌面壁纸软件 动态壁纸软件

KaiwuDB CTO 魏可伟:回归用户本位,打造“小而全”的数据库

KaiwuDB

KaiwuDB DTCC 2023

raw图片处理 DxO PhotoLab 6中文直装版

mac大玩家j

图像编辑 Mac软件 编辑图像 raw图像

华秋硬创联合安创加速器,加速和创新赋能技术驱动型创业者

华秋电子

创业

开放网关架构演进

阿里技术

网关 开放网关

目前主流大数据平台有哪些?哪些行业需要大数据平台?

行云管家

数据安全 大数据平台

Proxifier for Mac(socks5全局代理客户端) v3.8注册版

mac

全局代理客户端 苹果mac Windows软件 Proxifier

​Kubernetes的演变:从etcd到分布式SQL的过渡

互联网工科生

Kubernetes etcd 部署

中路对线发现正在攻防演练中投毒的红队大佬

墨菲安全

网络安全 npm 投毒 投毒分析

生成式AI技术:引领未来内容创作

百度开发者中心

物联网, 云计算, 文心一言 人工智能、

一点就通,社交源码IOS客户端开发集成SDK

山东布谷网络科技

sdk

带你读论文丨S&P21 Survivalism: Living-Off-The-Land 经典离地攻击

华为云开发者联盟

人工智能 华为云 华为云开发者联盟 企业号 8 月 PK 榜

亚信科技AntDB数据库连年入选《中国DBMS市场指南》代表厂商

亚信AntDB数据库

数据库 AntDB AntDB数据库 企业号 8 月 PK 榜

让企业内部开发游刃有余,平台工程到底是什么?

树上有只程序猿

DevOps 软件开发 平台工程

IPQ4019, IPQ6010, and IPQ6018 Revolutionizing Urban Vehicle Connectivity

wallyslilly

IPQ4019 IPQ6010 ipq6018

Capture One Pro 22 for Mac(RAW图像处理软件) v15.4.2.12中文版

mac

Raw图像处理软件 苹果mac Windows软件下载 Capture One Pro 22

生成式AI:人工智能新范式,引领生产力革命

百度开发者中心

#人工智能 文心一言

RocketMQ 5.0 架构解析:如何基于云原生架构支撑多元化场景

阿里巴巴云原生

阿里云 RocketMQ 云原生

REST 内容协商详解:理论解读与实际应用指南

Liam

程序员 前端 后端 web开发 RESTful API

和鲸 ModelWhale 与中科可控多款服务器完成适配认证,赋能中国云生态

ModelWhale

云原生 服务器 信创

1.8.x的新修复解决了内存泄漏问题并改进了性能_Ruby_Werner Schuster_InfoQ精选文章