macruby experimental benchmark
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)
Hello, I'm curious, how did you manage to build MacRuby with clang? I thought it did not support C++ yet. Did you use llvm-g++ maybe? Laurent On Mar 28, 2009, at 4:45 PM, रजनीश wrote:
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)
_______________________________________________ MacRuby-devel mailing list MacRuby-devel@lists.macosforge.org http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
participants (2)
-
Laurent Sansonetti
-
रजनीश