1 2Bench = %w( 3 loop 4 ack 5 fib 6 tak 7 fact 8) 9 10Lang = <<EOP.map{|l| l.strip} 11 ruby-cyg 12 ../../../test6/miniruby 13 perl 14 python 15 gosh 16EOP 17 18Bench.replace ['loop2'] 19Lang.replace ['ruby-cyg'] 20 21Ext = %w( 22 .rb 23 .rb 24 .pl 25 .py 26 .scm 27) 28 29p Bench 30p Lang 31 32require 'benchmark' 33 34def bench cmd 35 m = Benchmark.measure{ 36 #p cmd 37 system(cmd) 38 } 39 [m.utime, m.real] 40end 41 42Result = [] 43Bench.each{|b| 44 r = [] 45 Lang.each_with_index{|l, idx| 46 cmd = "#{l} #{b}#{Ext[idx]}" 47 r << bench(cmd) 48 } 49 Result << r 50} 51 52require 'pp' 53# utime 54puts Lang.join("\t") 55Bench.each_with_index{|b, bi| 56 print b, "\t" 57 puts Result[bi].map{|e| e[0]}.join("\t") 58} 59 60# rtime 61puts Lang.join("\t") 62Bench.each_with_index{|b, bi| 63 print b, "\t" 64 puts Result[bi].map{|e| e[1]}.join("\t") 65} 66 67