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