免费下载案例集|20+数字化领先企业人才培养实践经验 了解详情
写点什么

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

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

关注

评论

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

超级实用 Python GUI 入门

我再BUG界嘎嘎乱杀

Python 开发语言 GUI

GitHub星标破千!斯坦福大学的284个机器学习小抄(漫画中文版)

我再BUG界嘎嘎乱杀

Python 人工智能 机器学习 AI 开发语言

蓝易云 - 深入理解HTTP请求的五个要点

百度搜索:蓝易云

云计算 Linux TCP 运维 HTTP

天润融通分析AI技术助力客户服务,实现满意度三倍增长

天润融通

人工智能

提升办公效率!2024年5大主流AIPPT软件一网打尽!

彭宏豪95

人工智能 职场 在线白板 AIGC AI生成PPT

MYSQL 深入浅出系列 - 锁机制

间隙锁 :MySQL 数据库 临键锁

蓝易云 - 海外服务器指的是什么?有哪些优势?

百度搜索:蓝易云

云计算 服务器 云服务器 服务器租用 海外服务器

蓝易云 - Python雪花代码

百度搜索:蓝易云

Python 云计算 运维 云服务器 ID

蓝易云 - Java:commons-codec实现byte数组和16进制字符串转换

百度搜索:蓝易云

Java Apache 云计算 云服务器 高防服务器

实践指南,终于有大佬把Python和机器学习讲明白了!

我再BUG界嘎嘎乱杀

Python 人工智能 机器学习 开发语言

以 Go 语言为例解释什么是伪共享以及如何解决

江湖十年

Go 后端 go tool

Nginx 开启 gzip 压缩,让网站飞一会!

左诗右码

nginx

从OpenAI停服看中国市场:国产替代崛起的机遇与挑战

极限实验室

国产替代 openai easysearch

亮相2024世界人工智能大会,扫描全能王AIGC“黑科技”助力敦煌遗书数字化修复

合合技术团队

人工智能 OCR 合合信息 古籍修复

蓝易云 - php所有函数总结

百度搜索:蓝易云

php 云计算 运维 函数 云服务器

办公必备:2024年值得信赖的10款电子合同签约app

爱吃小舅的鱼

电子合同 合同管理软件 电子签名软件

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