写点什么

Ruby 性能近况:GC 调优、Maglev 和 MacRuby

  • 2009-04-18
  • 本文字数:830 字

    阅读完需:约 3 分钟

Ruby 1.8 中的垃圾回收器在去年受到了广泛的关注。Ruby 企业版(REE)的开发者们对 GC 进行了修改,实现了进程间的内存共享(详见 InfoQ 对创建者的采访)。REE 已经成为部署和运行 Rails 应用的普遍方式,包括 37Signals 在内的很多实践者都在使用它。最近, REE 中的 GC 有所改进,修正了一些 bug ,解决突发的冻结问题。

标准 Ruby1.8.x 的用户很快也可以受益于 MBAPI 补丁,这一补丁修正了许多 GC 问题及其相关的内存泄露问题,目前 MBAPI 由 EngineYard 提供赞助。

Evan Weaver 提供了 GC 调优小贴士,并推荐了一些可以监控 GC 的补丁。调优的结果如下:

目前每 13 个请求 GC 就会运行一次,代价有些高,每个请求需要耗费 0.009 秒。这意味着可以快上个 34% 左右。GC 调用频次与 RUBY_GC_MALLOC_LIMIT 的设置直接相关,但是如果我们将这个值设得再高一些,内存使用量就像吹气球那样爆掉了。

提高性能的另一个方法是寻求其他的 Ruby 实现,比如得益于现代 JVM 中成熟 GC 的 JRuby。其他的 Ruby 实现也将性能的提升作为主要的目标。Rubinius 正在稳步发展,而 MacRuby最近在它的实验分支上也有新的进展,性能上有所提升。实验分支上的工作正在进行中

  • 这个编译器现在能(据我所知)通过所有的语言规格,所以我猜它现在算是基本完成了。[…]
  • 由于以上种种,IRB 现在运行得不错!

更多改进

  • 引入了尾部调用消除。这一优化将递归调用转换成本地回路,这样可以防止栈溢出。[…]
  • 为了更快解释#eval 表达式,研究了 LLVM IR 解释器。研究结果已经提交,在简单表达式上工作得非常不错。不过缺省情况下不会激活这一功能,这是受调用 VM 基元的限制所致。我们将不得不稍微修改一下 LLVM 解释器,让它可以完全使用。这将在不远的将来实现。

最后,GemStone 的 Ruby 实现 MagLev 正在进行内部的 Alpha 版测试,Beta 版将于 Q2 推出。现在,兼容性(RubySpec)和基准测试结果在MagLev 的网站上已经公布。 Twitter 上也同步更新项目进展。

查看英文原文: Ruby Performance Roundup: GC Tuning, MagLev, MacRuby

2009-04-18 05:242056
用户头像

发布了 80 篇内容, 共 21.2 次阅读, 收获喜欢 5 次。

关注

评论

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

Springboot 一行代码实现文件上传 20个平台!少写代码到极致

Java你猿哥

Java spring Spring Boot ssm

降低 Spark 计算成本 50.18 %,使用 Kyligence 湖仓引擎构建云原生大数据底座,为计算提速 2x

Kyligence

开源 数据分析

架构师日记-从代码到设计的性能优化指南 | 京东云技术团队

京东科技开发者

技术架构 京东云 企业号 5 月 PK 榜

阿里巴巴官方上线!号称国内Java八股文天花板(终极版)首次开源

做梦都在改BUG

Java java面试 Java八股文 Java面试题 Java面试八股文

开源赋能 普惠未来|百度寄语2023开放原子全球开源峰会

开放原子开源基金会

用低代码开发平台高效打造仓储管理数字生态

力软低代码开发平台

腾讯Java大牛整理推荐的(Spring AOP/IOC思维导图源码笔记)

做梦都在改BUG

Java spring aop ioc

华为Atlas 200I DK A2开箱!

华为云开发者联盟

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

【FAQ】视频编辑服务常见问题及解答

HarmonyOS SDK

HMS Core

低代码赋能生物药企数字化

明道云

人工智能与大模型主题师资培训落地,飞桨持续赋能AI人才培养

飞桨PaddlePaddle

paddle 百度飞桨

浅谈微服务中限流熔断降级的方法论

做梦都在改BUG

Java 微服务 限流 熔断降级

如何让技术架构师具有预知未来业务发展的能力? | 京东云技术团队

京东科技开发者

架构师 京东云 企业号 5 月 PK 榜

阿里蚂蚁金服4面面经(已拿Offer)附答案!突如其来的意外之喜

Java你猿哥

Java 算法 ssm 并发 面经

阿里云微服务引擎 MSE 全新升级,实用能力更普惠,最高降幅 75%

阿里巴巴云原生

阿里云 云原生 微服务引擎

“前端”工匠系列(二):合格的工匠,怎么做好价值落地 | 京东云技术团队

京东科技开发者

技术架构 京东云 企业号 5 月 PK 榜

顶象App加固保障互联网+医疗安全与合规

极客天地

宝武中南钢铁借助飞桨让钢筋超限监控有了“火眼金睛”

飞桨PaddlePaddle

百度飞桨 图像分割 PaddleSeg

GPT大语言模型Vicuna本地化部署实践(效果秒杀Alpaca) | 京东云技术团队

京东科技开发者

AI 京东云 GPT 企业号 5 月 PK 榜

面试必备:四种经典限流算法讲解

做梦都在改BUG

Java 算法 限流

开源即时通讯IM框架MobileIMSDK的Uniapp端开发快速入门

JackJiang

网络编程 即时通讯 IM

好家伙!阿里新产Java性能优化(终极版),涵盖性能优化所有操作

做梦都在改BUG

Java 面试 性能优化 性能调优

Midjourney|文心一格prompt教程[Text Prompt(上篇)]:品牌log、App、徽章、插画、头像场景生成,各种风格选择:科技风、运动风

汀丶人工智能

人工智能 AI绘画 MidJourney 文生图 prompt learning

一种DWS迁移Oracle的CONNECT BY语法的方案

华为云开发者联盟

数据库 华为云 华为云开发者联盟 企业号 5 月 PK 榜

阿里p8架构师耗时一年整理SpringBoot,从构建小系统到架构大系统

做梦都在改BUG

Java Spring Boot 框架

UI自动化测试革命:拥抱Maestro框架的未来之旅

麦客

ios android 测试 自动化测试

二面蚂蚁金服(交叉面),已拿Offer,Java岗定级阿里P6

Java你猿哥

Java ssm 并发 java面试 面经

Midjourney|文心一格prompt教程[Text Prompt(下篇)]:游戏、实物、人物、风景、动漫、邮票、海报等生成,终极模板教学

汀丶人工智能

人工智能 AI绘画 MidJourney 文生图 prompt learning

使用taro+canvas实现微信小程序的图片分享功能 | 京东云技术团队

京东科技开发者

taro 京东云 企业号 5 月 PK 榜

IPP Swap孵化器系统开发之LP算力挖矿模型

薇電13242772558

智能合约 dapp开发

Ruby性能近况:GC调优、Maglev和MacRuby_Ruby_Werner Schuster_InfoQ精选文章