[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