[MacRuby-devel] macruby experimental benchmark
Laurent Sansonetti
lsansonetti at apple.com
Sat Mar 28 19:04:18 PDT 2009
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 at lists.macosforge.org
> http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
More information about the MacRuby-devel
mailing list