阿里、蚂蚁、晟腾、中科加禾精彩分享 AI 基础设施洞见,现购票可享受 9 折优惠 |AICon 了解详情
写点什么

Ruby 基准评测套件初探

  • 2008-07-02
  • 本文字数:1774 字

    阅读完需:约 6 分钟

随着 Ruby 实现数目的增长,人们的兴趣已经不仅仅是通过测试集合比较兼容性了(参阅 RubySpec 项目),而且还包括对不同实现进行基准评测。

Antonio Cangiano 启动了 Ruby 基准评测套件项目。我们对 Antonio 进行了访问,了解到关于基准评测套件、套件中计划的代码类型以及其他开发者如何参与等信息。

我们询问了 Antonio 关于 Ruby 基准评测套件的计划:

Ruby 基准评测套件的主意来源于我们目前缺乏一个标准集合来衡量各个 Ruby 实现的性能。在我的上一次评比中,我使用的评测集合是我从 Ruby 1.9 的代码仓库中获取的,因为比较方便。仅凭这些测试显然不适合测量出真实的性能来。一台空转的虚拟机比另外一台快,并不意味着它们在运行系统管理脚本 或者 Rails 应用的时候具有同样的可比性。 因此标准基准评测的目标是通用化,以便能代表 Ruby 应用真实环境的诸多方面。目前我们将基准评测分为以下部分:

  • 核心特性:严格执行语言特性的基准评测,除了基本算术以外几乎不需求库中类型。
  • 核心库:专门执行 Ruby 的核心库中类和方法的评测。
  • 标准库:专门执行 Ruby 的标准库中类和方法的评测。
  • 小型评测:远离真实环境的小型通用评测。例如,对于从计算机语言评测游戏中引入的评测或者是一些经典算法。
  • 真实环境:可能是最有趣的分类了,它包括了从真实环境的程序中提取的大型评测。例如,一个优秀的日志处理脚本是很适合这个分类的。

从目前收集到的反馈和一些可选 Ruby 实现的开发者们(包括 GemStone、Microsoft、Engine Yard 和 Sun 的开发者们)的兴趣程度来看,我相信这个项目成功很可能会成功。

我们也询问了关于他如何组织评测的,Antonio 回答到:

目前他们还都是单独的基准评测,不过我计划编写一个脚本来运行它们并报告一些测试值,包括 CPU 时间和内存使用。很大可能下一次评测仅仅分析执行时间,但是从长远来看内存消耗是不可忽视的,这也是服务器的一个特别重要的方面。

Tim Bray 已经重新启动他的 RX Ruby 分词器并贡献到评测套件当中。Antonio 也号召其他人来为套装做贡献:

这个项目是开源项目,基于 MIT 证书发布,所以欢迎任何人来贡献。我们目前托管在 GitHub 之上,普通贡献者可以对代码仓库进行写操作。那些对于 GitHub 或者 Git 不熟悉的贡献者们,也可以将基准点通过 email 发送给我(acangiano at gmail dot com)或者直接通过我们的 Google 群组。 最佳的基准测试往往是你自己的程序,所以最有价值的贡献莫过于从真实程序中抽取的那些了,最好是来自于不同的类型(文本处理、XML 处理和数字运算等 等)。刚刚提到的 log 处理器只是其中一个想法。例如在真实环境评测的部分,我们引入了 Borasky 先生的矩阵基准评测,因为其代码来自实际的数字计算 (如果不是的话就不会有那么对针对 C 库的优化了)。

经典算法和其他的小型评测也欢迎提交,然而正如刚才所提到的,我们需要那些能够反应虚拟机在真实环境中的性能的评测点,这样才没有争议。例如,Yarv 比 Ruby 1.8.6 快上三倍,然而在跑真实的应用时平均只快了 50% 左右。另外要说的是,标准库部分也需要贡献,因为我们需要提升标准库中对类和方法的覆盖率。

我们还有兴趣知道究竟套件是仅专注于 Ruby 核心和标准库,还是对扩展库也进行基准评测:

我 计划如此,至少是一部分特定扩展,我们不像把套件弄得巨大。我们需要意识到许多 Ruby 程序员依赖于例如 ActiveRecord 或者 ActiveSupport 这样的库,并希望看到在不同的虚拟机上这些库的表现如何。事实上,在将来的评测中,测试诸如 Rails 或者 Merb 这样的流行 框架可不是个坏主意。不成熟的虚拟机尚不能运行它们,但是这也是对评估可选 Ruby 实现感兴趣的用户来说很重要的信息。

最近的一次 Ruby 评测是在 2007 年的 12 月份,我们询问了下一次的时间安排:

我计划在 6 月 24 日运行评测并于 30 日以前将结果公布在我的 blog 上。这些天我的大部分时间都用于为 Wrox 出版社编写图书 Ruby on Rails for Microsoft Developers 了。 因此 24 日并不是一个随意的日子。那天这是我第三章的截止日期。如果你关注的话,我将会在 Mac OS X、Linux(包括 32 位和 64 位)以及 Windows Vista 上测试 Ruby 1.8.x、Ruby 1.9、JRuby、Rubinius、IronRuby、MacRuby、Ruby Enterprise Edition 和 MagLev(如果支持的话)。你需要为测试用上数天,不过我将在 30 日来做这件事情。

查看英文原文: Introducing the Ruby Benchmark Suite

2008-07-02 01:20650
用户头像

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

关注

评论

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

区块链挖矿APP软件开发,质押流动性矿池模式系统搭建

V\TG【ch3nguang】

挖矿系统开发

生成式AI引领数据中心网络升级

百度开发者中心

#人工智能 ChatGPT 文心一言

60个令人兴奋的ThreeJS网站示例

3D建模设计

three.js

区块链会员系统搭建,复利理财拆分模式开发部署

V\TG【ch3nguang】

理财系统 区块链系统开发 复利

软件测试/测试开发丨Selenium 高级定位 Xpath

测试人

程序员 软件测试 测试开发 selenium xpath

langchain中的LLM模型使用介绍

程序那些事

人工智能 AIGC langchain

19 个最佳Three.JS 示例

3D建模设计

ThreeJS

redis分布式锁,setnx+lua脚本的java实现 | 京东物流技术团队

京东科技开发者

redis setnx Lua脚本 redis 底层原理 企业号 8 月 PK 榜

如何把一个接口设计好? | 京东云技术团队

京东科技开发者

接口 接口设计 企业号 8 月 PK 榜

架构师日记-软件工程里的组织文化 | 京东云技术团队

京东科技开发者

架构 软件工程 自动化测试 企业号 8 月 PK 榜 组织文化

NineData X SelectDB 联合发布会,8月30日即将上线!

NineData

实时数仓 数据复制 SelectDB 产品架构 NineData

MATLAB R2023a for Mac激活图文教程+安装密钥

胖墩儿不胖y

Mac软件 计算工具 计算软件

基于深度学习的机器视觉表计识别

鲸品堂

人工智能 深度学习 数据 企业号 8 月 PK 榜

GameFi模式链游搭建,养成、PK类链游系统开发

V\TG【ch3nguang】

区块链游戏 gamefi

简单好用的防火墙 Radio Silence最新激活码

mac大玩家j

Mac软件 防火墙工具 防火墙软件 阻止网络连接软件

亿级月活的社交APP,陌陌如何做到3分钟定位故障?

童子龙

微服务 性能分析 链路跟踪 可观测平台

AI区块链量化交易平台搭建开发

V\TG【ch3nguang】

量化交易系统开发

Office 2019正式版 办公软件套装Office 2019 mac激活版

mac

苹果mac Windows软件下载 office 2019 办公软件套装

一道经典面试题:@Configuration 和 @Component 有何区别?

江南一点雨

Java spring

成品直播源码平台消息传递的协议:MMS协议

山东布谷科技

软件开发 消息传递 成品直播源码 MMS 多媒体短信协议

来文心中国行!专家面对面解读大模型产业实践及AI场景突围

飞桨PaddlePaddle

人工智能 百度飞桨 百度AI 文心一言 文心大模型

蓝易云:Ubuntu Linux中如何删除Firefox Snap?

百度搜索:蓝易云

firefox 云计算 Linux ubuntu 运维

蓝易云:CentOS7系统安装和配置 DRBD?实现高可用性和数据冗余教程!

百度搜索:蓝易云

云计算 Linux centos 运维 DRBD

撮合前端平台在低代码平台的落地实践 | 京东云技术团队

京东科技开发者

前端 中台架构 低代码平台 企业号 8 月 PK 榜 撮合

NFT艺术品交易平台开发搭建

V\TG【ch3nguang】

NFT数字藏品系统

3种OC渲染透明背景的方法

Finovy Cloud

学习 自学 渲染 建模 渲染器

免费共享大文件的10种方法,分享大文件传输的解决方案

镭速

中国传统文化国际交流大会暨《传承进行时》非遗晚会启动

Geek_2d6073

Ruby基准评测套件初探_Ruby_Mirko Stocker_InfoQ精选文章