写点什么

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

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

关注

评论

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

SD-WAN:实现大型企业网络架构快速升级拓展

Ogcloud

SD-WAN 企业网络 SD-WAN组网 SD-WAN服务商 SDWAN

DevOps VS 敏捷的区别是什么?

华为云PaaS服务小智

云计算 软件开发 云服务

开年喜报!Walrus成功入选CNCF云原生全景图

SEAL安全

开源 运维 cncf Walrus

商品总监必备神器:智能商品计划管理系统如何助力服装企业突围?

第七在线

LLM 模型融合实践指南:低成本构建高性能语言模型

Baihai IDP

程序员 AI 白海科技 模型融合 mergekit

AI大模型百舸争流背后,核心计算引擎是竞争关键

新消费日报

2024「ToB头条行业大会」正式启动!

ToB行业头条

tob 大会 北京 线下大会

SD-WAN解决方案:企业异地组网挑战之视频会议

Ogcloud

SD-WAN 企业网络 SD-WAN组网 SD-WAN服务商 SDWAN

Windows、Linux 和 Mac:操作系统之间的比较

小魏写代码

深入探讨 Vue3 中的 setup 函数

Apifox

vue.js 程序员 前端 前端开发 Vue3

AI赚钱:时尚图文带货秘籍

派大星

副业赚钱 AI赚钱

ETL快速拉取物流信息

RestCloud

ETL 数据转换

开发者选择与实施低代码平台的终极指南

NocoBase

开发者工具 低代码 低代码开发 低代码开发平台 无代码平台

限免福利!AI领航开工季 百度安全助力企业三重BUFF叠加

百度安全

运维工作新时代:自主编码实现运维自动化的转型之旅

京东科技开发者

软件测试学习笔记丨MongoDB 数据库

测试人

软件测试 自动化测试 测试开发

常用的制造企业网络优化方案

Ogcloud

SD-WAN 企业网络 SD-WAN组网 SD-WAN服务商 SDWAN

有哪些好玩的 Python 代码?

算法的秘密

Python python 3.5+

通过API接口实现自动化数据同步

Noah

亿级月活游戏《迷你世界》全栈容器化实践分享

华为云开发者联盟

华为云 迷你世界 华为云开发者联盟 华为云CCE 后端全站容器化

网站运营者必知!香港虚拟主机的五大优势,简直不可错过!

一只扑棱蛾子

AI视频生成工具Sora横空出世!一文带你了解Sora:简介|主要功能|使用场景|平替工具等!

彭宏豪95

AI大模型 openai AIGC AI绘画 sora

技术革新助力业务飞跃:聚道云软件连接器实现财务与业务高效协同

聚道云软件连接器

案例分享

Montoux 发布首款适用于精算师的生成式 AI Copilot

财见

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