阅读更多

14顶
1踩

编程语言

原创新闻 最新Ruby虚拟机性能评测

2008-12-10 09:07 by 见习记者 QuakeWang 评论(11) 有8683人浏览
去年11月份的时候,Antonio Cangiano做过一份Ruby虚拟机性能评测,包括Ruby 1.8.5, YARV(早期的Ruby 1.9), JRuby, Ruby.NET, Rubinius, XRuby, 和 Cardinal,在当时Ruby1.9的性能差不多是Ruby1.8.5的3倍。

最近Antonio作了最新的Ruby虚拟机性能评测: http://antoniocangiano.com/2008/12/09/the-great-ruby-shootout-december-2008/,下图是评测结果:



我们可以看到即将发布正式版的Ruby1.9.1表现最好,差不多是Ruby.1.8.7的5倍,令人吃惊的是JRuby性能有了巨大提高:达到了3.5倍,而Phusion能够节约内存的Ruby Enterprise Edition (REE)性能差不多也是Ruby1.8.7的2倍,Antonio有一个很棒的总结:
引用
Ruby1.8(MRI)的低性能和内存泄漏将会成为过去式,整个社区将会迎来更好的,更快的Ruby虚拟机实现
  • 大小: 32.4 KB
14
1
评论 共 11 条 请登录后发表评论
11 楼 aninfeel 2008-12-11 08:59
5倍?是不是原来的太慢了?
10 楼 rainux 2008-12-11 02:26
居然 Ruby 1.8.6 on Vista 也比 Ruby 1.8.7 on Ubuntu 稍微快那么一点。不过这只是 Ruby benchmark,如果是 Rails benchmark,肯定就不止慢一点了。
9 楼 rbh 2008-12-10 21:29
JRuby 在新的JDK 1.6.0_11支持下,真的提升不少!
8 楼 superxielei 2008-12-10 20:28
期待1.9
7 楼 lewhwa 2008-12-10 19:25
Support JRuby!
6 楼 rubyrock 2008-12-10 13:49
超级期待 Ruby 1.9.1。
5 楼 richyzhang 2008-12-10 13:31
正式用估计要等到开世博的时候了.
4 楼 welsryy 2008-12-10 12:43
期待ruby 1.9.1放出
速度真的很不错
再解决内存泄露的问题
就非常好了
3 楼 jerry 2008-12-10 10:05
在windows下,不知道性能如何?
2 楼 wosmvp 2008-12-10 09:59
看完原文后,第一时间跑过来看新闻


期待 Py3.0 VS Ruby 1.9.1
1 楼 sheandwei 2008-12-10 09:44
JRuby确实很惊艳。。。

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • Ctypedptrlist模板类使用心得

    1. 关于序列化 为了解决应用程序中含有动态对象的序列化问题,必须在自己类里面重载Serialize函数,并且加上宏的序列化声明DECLARE_SERIAL()以及类的序列化实现宏IMPLEMENT_SERIAL()。 需要特别关注的是,类中必须有个一个无参的构造函数,并且继承Cobject,以及头文件”afxtempl.h”。 2. 关于向量 笔者做过试验, 曾用向量做过,但是不知道什么原因导致序列化失败,最终以失败告终,笔者会进一步研究出序列化的内幕,以实现向量的序列化。

  • C++模板(template)详解

    原因是在链接过程中,编译器找不到模板函数的定义,因为在使用模板时,.h文件中的模板的声明知晓了模板参数的类型,但在.cpp文件中的模版不知道,所以.cpp中模板的定义没法实例化,也就没法在编译阶段生成一份经过实例化的具体的代码,这将导致程序在链接阶段找不到模板函数的实现而报链接错误。这样一来,在调用Add函数的时候,其本质上是调用了上面的经过实例化的模板函数,这样做的好处就是,程序员就可以不用对每一种数据类型都去实现对应的函数,大大提高了效率,而且只实现这么一份通用的模板函数可以使其更易于维护。

  • C++语法篇之 Templates 模板

    假如我们需要设计X和Y两个列表,这两个列表具有相似的代码唯一的不同是数据类型,则在C++中实现有如下的选择: 共同的基类:在大多数场景并不适用,只是为了一个列表去提炼基类也没必要。 克隆代码:分别对X 和 Y 类型定义各自的列表,能够保证类型安全但是后期维护成本高。 空列表:定义一个没有类型的列表 (void(*))。缺点是类型不安全。 除此之外,我们还可以用Template来实现,Template 既能保证重用代码,还能保证类型安全。那我们就来看看Template是如何施展魔法的。 Templa.

  • C++ Template

    例如我们定义的stack类模板,如果是char*类型的栈,我们希望可以复制char的所有数据到stack类中,因为只是保存char指针,char指针指向的内存有可能会失效,stack弹出的堆栈元素char指针,指向的内存可能已经无效了。考虑我们写一个简单的栈的类,这个栈可以支持int类型,long类型,string类型等等,不利用类模板,我们就要写三个以上的stack类,其中代码基本一样,通过类模板,我们可以定义一个简单的栈模板,再根据需要实例化为int栈,long栈,string栈。

  • C++ template 的使用和技巧

    模板是泛型编程的基础,泛型编程即以一种独立于任何特定类型的方式编写代码。

  • C++ template 学习笔记

    b. Class 类型(包含 struct 和 union),模板(包含部分特例化,但不能是全特例化),以及 inline 函数和变量,在一个编译单元中只能被定义一次,而且不同编译单元间的定义 应该相同.6.非类型模板参数的实参可以是任何编译器表达式,不过如果在表达式中使用了 operator >,就必须将相应表达式放在括号里面,否则>会被作为模板参数列表末尾的>,从而截断了参数列表。(6)对于类 X 的成员指针类型,除了包括成员相关的关联名字空间,关联类,该集合还包括与 X 相关的关联名字空间和关联类。

  • C++模板类

    模板类

  • c++ templates

    在实际应用中可能在多个cpp文件中生成相同的class of sometype(而且会同名)在swap中可以使用T来代替数据类型,在实际使用的时候T可以是任意数据类型。类的成员函数,每一个函数都是函数模板(function template)T可以用来做参数的类型,也可以做返回值类型,也可以用来做变量的声明。template的参数列表除了可以包含类,还可以包含常数表达式。在运行时,在调用函数出使用template创造一个新的函数。在实际应用中尖括号的里的内容可能会相当复杂。1.在名字前加上文件的前缀。

  • C++箴言:理解typename的两个含义

    C++箴言:理解typename的两个含义 【原创文章:转载请保留或注明出处:http://dev.yesky.com/13/2221013.shtml】        问题:在下面的 template declarations(模板声明)中 class 和 typename 有什么不同?  template class Widget; // uses "class" temp

  • C++ Templates简体中文版

    C++ Templates简体中文版 全部中文版 扫描档 需要的自己下

  • CTypedPtrList

    template class CTypedPtrList : public BASE_CLASS 参数: BASE_CLASS 类型指针列表类的基类;必须是一个指针列表类(CObList或CPtrList)。 TYPE 保存在基类列表中的元素的类型。 说明: CTypedPtrList类为类CPtrList的对象提供了一个类型-安全的“包装”。当你使用CTypedPtrList

  • C TEMPLATES学习笔记四:技巧性基础知识

    一:关键字typename typename的另一个用法: 告诉编译器把一个特殊的名字理解为类型。 如下: template <typename T> class MyClass { typename T::SubType * ptr; }; template<typename T> class MyClass { T::SubType * ptr; }; ...

  • 模板与宏的比较(Templates vs. Macros)(转)

    在很多方面,模板类似预处理宏,用给定的类型代替模板的变量。然而,模板和宏有很大的区别: 宏: #define min(i, j) (((i) 模板: template T min (T i, T j) { return ((i 使用宏会带来如下问题: Ø         编译器没有办法检查宏的参数的类型是否一致。宏的定义中缺少特定类型的检查。 Ø         参数i和j被被调

  • C++ Templates (中文版)pdf

    下载地址:网盘下载内容简介······本书是C++模板编程的完全指南,旨在通过基本概念、常用技巧和应用实例3方面的有用资料,为读者打下C++模板知识的坚实基础。全书共22章。第1章全面介绍了本书的内容结构和相关情况。第1部分(第2~7章)以教程的风格介绍了模板的基本概念,第2部分(第8~13章)阐述了模板的语言细节,第3部分(第14~18章)介绍...

  • 终于把C++ Templates看完了~!

    4月份的时候就从pangwa那里借来了英文版的书,此书恐怕是到现在看得最痛苦的一本,比大一那会儿通读的《Thinking in Java》E版还难受。尤其是第一篇讲Template技术细节的时候巨细靡遗,头昏脑胀,因此中间还中止了1个多月没看。不过第二篇讲高级应用的时候感觉还好。总的来说这本书绝对是必看的,尤其是最后几章,是MCD的前导知识,很有必要学好。感觉C++的模板技术是另一番天地,运行

  • C++中的模板的使用(templates)【C++学习笔记】

    53 C++中的模板(templates) 什么是模板:模板允许你定义一个可以根据你的用途进行编译的模板(有意义下)。故所谓模板,就是让编译器基于DIY的规则去为你写代码 🍅函数的模板(对形参) void Print(int temp) { cout << temp; } void Print(string temp) { cout << temp; } void Print(double temp) { cout << temp; } int m

  • Eclipse - Create a new C++ project (新建 C++ 工程)

    Eclipse - Create a new C++ project (新建 C++ 工程)

  • 《c++ Templates》笔记 第二章 模板函数

    模板参数的声明 template<comma-separated-list-of-parameters> // template<用逗号隔开的参数列表> 模板的定义和实例化 // 模板的定义 template<typename T> inline T const& max(T const& a, T const& b) { return a < b ? b : a; } // 实例化 int a = max(1, 2);

Global site tag (gtag.js) - Google Analytics