[MacRuby-devel] macruby experimental benchmark
रजनीश
rdogra at earthlink.net
Sat Mar 28 16:45:56 PDT 2009
Hello,
banchmark is already impressive when compared to 0.4.
I ran the benchmark with:
1. clang -03 -arch i386 macruby 0.4
2. clang -O3 -arch i386 macruby 0.5
3. gcc-4.2 -O3 -arch i386 macruby 0.5
(clang is the C/ObjC compiler native to LLVM)
PS. clang currently doesn’t pass rake spec:ci (
============== clang -03 -arch i386 macruby 0.4
============================
~/Developer/MacRuby-> ./miniruby -I./lib ../macruby-experimental/
bench.rb
user system total
real
10 fib(30) 2.610000 0.010000 2.620000
( 2.623886)
10 fib(35) 28.720000 0.060000 28.780000
( 28.809891)
tak 2.530000 0.000000 2.530000
( 2.524596)
tarai 2.060000 0.010000 2.070000
( 2.066017)
ackermann 2.410000 0.000000 2.410000
( 2.410433)
10000000 times loop 0.330000 0.000000 0.330000
( 0.322564)
30000000 times loop 3.240000 0.000000 3.240000
( 3.243957)
10000000 while loop 0.890000 0.000000 0.890000
( 0.891436)
60000000 while loop 5.500000 0.020000 5.520000
( 5.521020)
30000000 msg w/ 0 arg 3.940000 0.010000 3.950000
( 3.947202)
30000000 msg w/ 1 arg 4.010000 0.010000 4.020000
( 4.026623)
10000000 super w/ 0 arg 7.420000 0.020000 7.440000
( 7.437519)
10000000 super w/ 1 arg 9.540000 0.020000 9.560000
( 9.592043)
10000000 #send 5.280000 0.020000 5.300000
( 5.309358)
10000000 ivar read 2.040000 0.000000 2.040000
( 2.053376)
30000000 ivar read 6.100000 0.020000 6.120000
( 6.119993)
10000000 ivar write 2.150000 0.010000 2.160000
( 2.152597)
30000000 ivar write 6.440000 0.010000 6.450000
( 6.449781)
30000000 const 1.800000 0.010000 1.810000
( 1.803391)
30000000 yield 3.520000 0.010000 3.530000
( 3.519516)
30000000 msg w/ block+yield 6.400000 0.010000 6.410000
( 6.418424)
30000000 Proc#call 8.640000 0.030000 8.670000
( 8.692045)
30000000 while break 2.510000 0.000000 2.510000
( 2.530938)
10000000 block break 13.810000 0.550000 14.360000
( 8.429742)
30000000 while next 2.290000 0.000000 2.290000
( 2.295239)
10000000 block next 2.690000 0.010000 2.700000
( 2.702703)
60000000 begin w/o exception 4.980000 0.010000 4.990000
( 5.014342)
60000000 ensure w/o exception 3.640000 0.010000 3.650000
( 3.647675)
50000 raise 2.580000 0.170000 2.750000
( 2.077362)
=========== clang -O3 -arch i386 macruby 0.5
=====================================
./miniruby -I./lib bench.rb
user system total
real
10 fib(30) 0.350000 0.000000 0.350000
( 0.353159)
10 fib(35) 3.890000 0.000000 3.890000
( 3.905832)
tak 0.220000 0.010000 0.230000
( 0.224368)
tarai 0.170000 0.000000 0.170000
( 0.162998)
ackermann 0.210000 0.000000 0.210000
( 0.211560)
10000000 times loop 0.140000 0.000000 0.140000
( 0.138711)
30000000 times loop 1.380000 0.000000 1.380000
( 1.386931)
10000000 while loop 0.080000 0.000000 0.080000
( 0.082421)
60000000 while loop 0.500000 0.000000 0.500000
( 0.493618)
30000000 msg w/ 0 arg 1.050000 0.000000 1.050000
( 1.052416)
30000000 msg w/ 1 arg 1.650000 0.010000 1.660000
( 1.646295)
10000000 super w/ 0 arg 1.000000 0.000000 1.000000
( 1.003267)
10000000 super w/ 1 arg 1.350000 0.000000 1.350000
( 1.357992)
10000000 #send 0.450000 0.000000 0.450000
( 0.447047)
10000000 ivar read 0.150000 0.000000 0.150000
( 0.151039)
30000000 ivar read 0.450000 0.000000 0.450000
( 0.452225)
10000000 ivar write 0.180000 0.000000 0.180000
( 0.178246)
30000000 ivar write 0.530000 0.000000 0.530000
( 0.534289)
30000000 const 0.500000 0.000000 0.500000
( 0.510684)
30000000 yield 1.190000 0.010000 1.200000
( 1.194234)
30000000 msg w/ block+yield 3.420000 0.000000 3.420000
( 3.425893)
30000000 Proc#call 2.340000 0.010000 2.350000
( 2.346405)
30000000 while break 0.190000 0.000000 0.190000
( 0.191913)
10000000 block break 1.660000 0.000000 1.660000
( 1.670270)
30000000 while next 0.240000 0.000000 0.240000
( 0.246752)
10000000 block next 1.630000 0.000000 1.630000
( 1.640193)
60000000 begin w/o exception 0.490000 0.000000 0.490000
( 0.493330)
60000000 ensure w/o exception 0.350000 0.010000 0.360000
( 0.342626)
50000 raise 3.370000 0.120000 3.490000
( 1.796350)
=========== gcc-4.2 -O3 -arch i386 macruby 0.5
=====================================
~/Developer/macruby-experimental-> ./miniruby -I./lib bench.rb
user system total
real
10 fib(30) 0.350000 0.000000 0.350000
( 0.352703)
10 fib(35) 3.890000 0.010000 3.900000
( 3.924630)
tak 0.230000 0.000000 0.230000
( 0.224254)
tarai 0.160000 0.000000 0.160000
( 0.164155)
ackermann 0.210000 0.000000 0.210000
( 0.212784)
10000000 times loop 0.150000 0.010000 0.160000
( 0.153406)
30000000 times loop 1.520000 0.000000 1.520000
( 1.529161)
10000000 while loop 0.080000 0.000000 0.080000
( 0.083568)
60000000 while loop 0.490000 0.000000 0.490000
( 0.497827)
30000000 msg w/ 0 arg 1.150000 0.010000 1.160000
( 1.163730)
30000000 msg w/ 1 arg 1.650000 0.000000 1.650000
( 1.658609)
10000000 super w/ 0 arg 0.990000 0.000000 0.990000
( 0.995326)
10000000 super w/ 1 arg 1.380000 0.000000 1.380000
( 1.388644)
10000000 #send 0.440000 0.000000 0.440000
( 0.449934)
10000000 ivar read 0.150000 0.000000 0.150000
( 0.152117)
30000000 ivar read 0.450000 0.000000 0.450000
( 0.454063)
10000000 ivar write 0.180000 0.000000 0.180000
( 0.179490)
30000000 ivar write 0.540000 0.000000 0.540000
( 0.536518)
30000000 const 0.510000 0.000000 0.510000
( 0.511782)
30000000 yield 1.280000 0.010000 1.290000
( 1.281898)
30000000 msg w/ block+yield 3.450000 0.000000 3.450000
( 3.468621)
30000000 Proc#call 2.220000 0.010000 2.230000
( 2.236161)
30000000 while break 0.190000 0.000000 0.190000
( 0.192734)
10000000 block break 1.750000 0.000000 1.750000
( 1.762103)
30000000 while next 0.240000 0.000000 0.240000
( 0.246971)
10000000 block next 1.770000 0.010000 1.780000
( 1.771981)
60000000 begin w/o exception 0.500000 0.000000 0.500000
( 0.494001)
60000000 ensure w/o exception 0.340000 0.000000 0.340000
( 0.344364)
50000 raise 2.850000 0.110000 2.960000
( 1.525959)
More information about the MacRuby-devel
mailing list