Tag: 基准

MRI Ruby和jRuby之间的性能差异

在做一些基准测试以回答有关连接数组的最快方法的问题时,我很惊讶当我使用jRuby进行相同的基准测试时,测试速度要慢得多。 这是否意味着关于jRuby比MRI Ruby更快的旧的慢板已经消失了? 或者这是关于如何在jRuby中处理数组? 这里的基准测试结果和MRI Ruby 2.3.0和jRuby 9.1.2.0两者都运行在64位Windows 7盒子上,所有4个处理器忙于50-60%,内存使用±5.5GB。 必须使用参数-J-Xmx1500M启动jRuby以提供足够的堆空间。 由于堆栈级别太深,我不得不用推送删除测试,并且还删除了最慢的方法,以免使测试时间过长。 使用Jave运行时:1.7.0_21 require ‘Benchmark’ N = 100 class Array def concat_all self.reduce([], :+) end end # small arrays a = (1..10).to_a b = (11..20).to_a c = (21..30).to_a Benchmark.bm do |r| r.report(‘plus ‘) { N.times { a + b + c }} r.report(‘concat ‘) { N.times […]