您的位置: 新闻频道 Ruby新闻
这个星期我使用charlie(一个遗传算法库)和重写的TSP范例来测试Ruby1.8, Ruby 1.9, JRuby和Rubinius(Ruby虚拟机)。测试结果让人吃惊,数据如下:

Ruby 1.8 (MRI):
$ time ruby tsp_solver.rb
real 0m34.940s
user 0m34.398s
sys 0m0.125s

Ruby 1.9 :
$ time ruby19 tsp_solver.rb
real 0m21.533s
user 0m20.736s
sys 0m0.119s

Let's move to the alternatives now.

First JRuby 1.1:
$ time jruby tsp_solver.rb
real 0m57.815s
user 0m48.651s
sys 0m0.751s

JRuby 1.1 with -J-server flag:
$ time jruby -J-server tsp_solver.rb
real 0m34.834s
user 0m37.714s
sys 0m0.667s

And finally Rubinius:
$ time rbx tsp_solver.rb
real 12m29.830s
user 12m20.105s
sys 0m4.219s

我本来以为Ruby 1.8会很慢,没想到Ruby 1.8速度仅次于Ruby 1.9,而Rubinius的速度是最慢的,考虑到它是一个虚拟机,而且这是一个很新的项目,这意味着未来还有很大的成长空间。

我使用的机器是:MacBook Pro with 2.2GHz Intel Core 2 Duo and 2GB Ram running Mac OS X Leopard 10.5.2。测试代码tsp_solver.rb,需要安装charlie gem。不用把这次测试当作正式的性能选择依据,可以大概了解一下ruby不同版本的运行速度。

下面是RVMs versions:

* $ ruby -v
ruby 1.8.6 (2007-09-24 patchlevel 111) [universal-darwin9.0]

* rbx -v
rubinius 0.8.0 (ruby 1.8.6 compatible) (bbe450f22) (04/15/2008) [i686-apple-darwin9.2.2]

* $ ruby19 -v
ruby 1.9.0 (2007-12-25 revision 14709) [i686-darwin9.2.2]

* $ jruby -v
ruby 1.8.6 (2008-03-28 rev 6360) [i386-jruby1.1]
And: $ java -version
java version "1.5.0_13"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_13-b05-237)
Java HotSpot(TM) Client VM (build 1.5.0_13-119, mixed mode, sharing)

来自:nikos-d.blogspot.com

评论 共 5 条 发表评论

withyou 2008-04-28 09:12
jruby的速度比想象中的快
dennis_zane 2008-04-28 09:07
jruby的表现不出意料,不过内存肯定要大上许多,估计在2到3倍
caoyi1983 2008-04-27 11:27
直接用java呢?
caoyi1983 2008-04-27 11:26
如果用python和jython又会怎么样呢?
caoyi1983 2008-04-27 11:23
唉,为了说句话又登录了一次。
JRuby 1.1 with -J-server flag 意思是运行时添加 -server 参数么?我们都知道java运行的效率主要看虚拟机,如果使用1.6版本的虚拟机怎么样呢?bea和ibm的怎么样呢?

发表评论

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