Benchmarks for the {Combinatorics} code can be found in the benchmarks/
directory.
Benchmark machine specs:
- CPU: AMD Athlon(tm) 64 Processor 3400+ (2202.785 MHz)
- Cache Size: 1024 KB
- Memory: 1 Gb
Ruby 1.9.2-p290 (2011-07-09 revision 32553) [x86_64-linux]:
user system total real
singleton: 0.050000 0.020000 0.070000 ( 0.081225)
single-enum: 0.000000 0.000000 0.000000 ( 0.009706)
depth 1: 0.000000 0.000000 0.000000 ( 0.000652)
depth 2: 0.070000 0.010000 0.080000 ( 0.084974)
depth 3: 5.670000 0.240000 5.910000 ( 6.623347)
JRuby 1.6.4 (ruby-1.8.7-p330) (2011-08-23 17ea768) (OpenJDK 64-Bit Server VM 1.6.0_22) [linux-amd64-java]:
user system total real
singleton: 1.365000 0.000000 1.365000 ( 1.212000)
single-enum: 0.134000 0.000000 0.134000 ( 0.134000)
depth 1: 0.046000 0.000000 0.046000 ( 0.045000)
depth 2: 1.613000 0.000000 1.613000 ( 1.614000)
depth 3: 10.054000 0.000000 10.054000 ( 10.054000)
Rubinius 2.0.0dev (1.8.7 5e67b11e yyyy-mm-dd JI) [x86_64-unknown-linux-gnu]:
user system total real
singleton: 0.802878 0.112983 0.915861 ( 1.722362)
single-enum: 0.128980 0.011998 0.140978 ( 0.176392)
depth 1: 0.000000 0.000000 0.000000 ( 0.000897)
depth 2: 0.058991 0.004999 0.063990 ( 0.143435)
depth 3: 3.483470 0.148977 3.632447 ( 5.156510)
Ruby 1.9.2-p290 (2011-07-09 revision 32553) [x86_64-linux]:
user system total real
{100} x {100} 0.070000 0.000000 0.070000 ( 0.084734)
{200} x {200} 0.290000 0.020000 0.310000 ( 0.347752)
{400} x {400} 1.370000 0.070000 1.440000 ( 1.582130)
{800} x {800} 8.250000 0.370000 8.620000 ( 9.498290)
JRuby 1.6.4 (ruby-1.8.7-p330) (2011-08-23 17ea768) (OpenJDK 64-Bit Server VM 1.6.0_22) [linux-amd64-java]:
user system total real
{100} x {100} 2.469000 0.000000 2.469000 ( 2.349000)
{200} x {200} 2.575000 0.000000 2.575000 ( 2.574000)
{400} x {400} 2.354000 0.000000 2.354000 ( 2.354000)
{800} x {800} 7.730000 0.000000 7.730000 ( 7.730000)
Rubinius 2.0.0dev (1.8.7 5e67b11e yyyy-mm-dd JI) [x86_64-unknown-linux-gnu]:
user system total real
{100} x {100} 0.114982 0.051992 0.166974 ( 1.184129)
{200} x {200} 0.391941 0.159976 0.551917 ( 1.396105)
{400} x {400} 1.333797 0.653901 1.987698 ( 3.120384)
{800} x {800} 5.961093 2.614602 8.575695 ( 13.643119)
Ruby 1.9.2-p290 (2011-07-09 revision 32553) [x86_64-linux]:
user system total real
n=20 k=1 0.000000 0.000000 0.000000 ( 0.000172)
n=20 k=2 0.010000 0.000000 0.010000 ( 0.003592)
n=20 k=3 0.010000 0.000000 0.010000 ( 0.017710)
n=20 k=4 0.040000 0.000000 0.040000 ( 0.060566)
n=20 k=5 0.180000 0.010000 0.190000 ( 0.211709)
n=20 k=6 0.490000 0.030000 0.520000 ( 0.583004)
n=20 k=7 1.110000 0.070000 1.180000 ( 1.307065)
n=20 k=8 1.980000 0.050000 2.030000 ( 2.204111)
n=20 k=9 2.770000 0.120000 2.890000 ( 3.221468)
n=20 k=10 3.310000 0.150000 3.460000 ( 3.904973)
n=20 k=11 3.120000 0.150000 3.270000 ( 4.085721)
n=20 k=12 2.520000 0.140000 2.660000 ( 3.139445)
n=20 k=13 1.570000 0.060000 1.630000 ( 1.853883)
n=20 k=14 0.820000 0.040000 0.860000 ( 1.142598)
n=20 k=15 0.350000 0.020000 0.370000 ( 0.436363)
n=20 k=16 0.110000 0.000000 0.110000 ( 0.141398)
n=20 k=17 0.030000 0.010000 0.040000 ( 0.047691)
n=20 k=18 0.000000 0.000000 0.000000 ( 0.003746)
n=20 k=19 0.000000 0.000000 0.000000 ( 0.000438)
n=20 k=20 0.000000 0.000000 0.000000 ( 0.000043)
JRuby 1.6.4 (ruby-1.8.7-p330) (2011-08-23 17ea768) (OpenJDK 64-Bit Server VM 1.6.0_22) [linux-amd64-java]:
user system total real
n=20 k=1 0.271000 0.000000 0.271000 ( 0.048000)
n=20 k=2 0.163000 0.000000 0.163000 ( 0.163000)
n=20 k=3 0.184000 0.000000 0.184000 ( 0.184000)
n=20 k=4 0.759000 0.000000 0.759000 ( 0.759000)
n=20 k=5 1.157000 0.000000 1.157000 ( 1.157000)
n=20 k=6 1.116000 0.000000 1.116000 ( 1.116000)
n=20 k=7 0.490000 0.000000 0.490000 ( 0.490000)
n=20 k=8 0.632000 0.000000 0.632000 ( 0.632000)
n=20 k=9 0.907000 0.000000 0.907000 ( 0.908000)
n=20 k=10 1.040000 0.000000 1.040000 ( 1.040000)
n=20 k=11 0.991000 0.000000 0.991000 ( 0.991000)
n=20 k=12 0.784000 0.000000 0.784000 ( 0.784000)
n=20 k=13 0.513000 0.000000 0.513000 ( 0.514000)
n=20 k=14 0.285000 0.000000 0.285000 ( 0.285000)
n=20 k=15 0.141000 0.000000 0.141000 ( 0.142000)
n=20 k=16 0.045000 0.000000 0.045000 ( 0.045000)
n=20 k=17 0.009000 0.000000 0.009000 ( 0.009000)
n=20 k=18 0.004000 0.000000 0.004000 ( 0.004000)
n=20 k=19 0.001000 0.000000 0.001000 ( 0.001000)
n=20 k=20 0.000000 0.000000 0.000000 ( 0.000000)
Rubinius 2.0.0dev (1.8.7 5e67b11e yyyy-mm-dd JI) [x86_64-unknown-linux-gnu]:
user system total real
n=20 k=1 0.001000 0.000000 0.001000 ( 0.001005)
n=20 k=2 0.005999 0.000000 0.005999 ( 0.016681)
n=20 k=3 0.051992 0.002000 0.053992 ( 0.177731)
n=20 k=4 0.159976 0.005999 0.165975 ( 0.564428)
n=20 k=5 0.412938 0.016998 0.429936 ( 1.410280)
n=20 k=6 1.045841 0.034994 1.080835 ( 1.220624)
n=20 k=7 2.234661 0.073989 2.308650 ( 2.514775)
n=20 k=8 3.821419 0.157976 3.979395 ( 4.479381)
n=20 k=9 5.377183 0.230965 5.608148 ( 6.545616)
n=20 k=10 6.270047 0.271958 6.542005 ( 7.481663)
n=20 k=11 6.056079 0.201970 6.258049 ( 7.179931)
n=20 k=12 4.684288 0.237963 4.922251 ( 5.829043)
n=20 k=13 3.066534 0.122982 3.189516 ( 3.633006)
n=20 k=14 1.716739 0.060990 1.777729 ( 2.083863)
n=20 k=15 0.708892 0.031996 0.740888 ( 0.814869)
n=20 k=16 0.233965 0.006999 0.240964 ( 0.272663)
n=20 k=17 0.057992 0.000999 0.058991 ( 0.075194)
n=20 k=18 0.008999 0.001000 0.009999 ( 0.015695)
n=20 k=19 0.001999 0.000000 0.001999 ( 0.001539)
n=20 k=20 0.000000 0.000000 0.000000 ( 0.000253)
Ruby 1.9.2-p290 (2011-07-09 revision 32553) [x86_64-linux]:
user system total real
r=1 0.000000 0.000000 0.000000 ( 0.000029)
r=2 0.000000 0.000000 0.000000 ( 0.000029)
r=3 0.010000 0.000000 0.010000 ( 0.002234)
r=4 0.000000 0.000000 0.000000 ( 0.002388)
r=5 0.020000 0.000000 0.020000 ( 0.028709)
r=6 0.100000 0.000000 0.100000 ( 0.119063)
r=7 0.380000 0.030000 0.410000 ( 0.462036)
r=8 1.210000 0.080000 1.290000 ( 1.447420)
r=9 2.510000 0.130000 2.640000 ( 2.919967)
r=10 2.840000 0.200000 3.040000 ( 3.664906)
JRuby 1.6.4 (ruby-1.8.7-p330) (2011-08-23 17ea768) (OpenJDK 64-Bit Server VM 1.6.0_22) [linux-amd64-java]:
user system total real
r=1 0.274000 0.000000 0.274000 ( 0.041000)
r=2 0.001000 0.000000 0.001000 ( 0.001000)
r=3 0.012000 0.000000 0.012000 ( 0.012000)
r=4 0.154000 0.000000 0.154000 ( 0.154000)
r=5 0.306000 0.000000 0.306000 ( 0.307000)
r=6 0.081000 0.000000 0.081000 ( 0.081000)
r=7 0.168000 0.000000 0.168000 ( 0.168000)
r=8 0.516000 0.000000 0.516000 ( 0.517000)
r=9 1.224000 0.000000 1.224000 ( 1.224000)
r=10 1.649000 0.000000 1.649000 ( 1.649000)
Rubinius 2.0.0dev (1.8.7 5e67b11e yyyy-mm-dd JI) [x86_64-unknown-linux-gnu]:
user system total real
r=1 0.001000 0.000000 0.001000 ( 0.000062)
r=2 0.001000 0.000000 0.001000 ( 0.004535)
r=3 0.006000 0.000000 0.006000 ( 0.016175)
r=4 0.049993 0.003000 0.052993 ( 0.171867)
r=5 0.153976 0.012998 0.166974 ( 0.584311)
r=6 0.578912 0.020997 0.599909 ( 0.654977)
r=7 2.694590 0.106984 2.801574 ( 3.170215)
r=8 9.167606 0.337948 9.505554 ( 10.952164)
r=9 21.419744 0.785881 22.205625 ( 24.619187)
r=10 29.557506 1.087834 30.645340 ( 34.234011)
Ruby 1.9.2-p290 (2011-07-09 revision 32553) [x86_64-linux]:
user system total real
n=1 0.000000 0.000000 0.000000 ( 0.000021)
n=2 0.000000 0.000000 0.000000 ( 0.000041)
n=3 0.000000 0.000000 0.000000 ( 0.000021)
n=4 0.000000 0.000000 0.000000 ( 0.000069)
n=5 0.000000 0.000000 0.000000 ( 0.000393)
n=6 0.000000 0.000000 0.000000 ( 0.002281)
n=7 0.020000 0.010000 0.030000 ( 0.028188)
n=8 0.170000 0.000000 0.170000 ( 0.207589)
n=9 1.630000 0.070000 1.700000 ( 1.974767)
n=10 17.200000 0.670000 17.870000 ( 20.047089)
JRuby 1.6.4 (ruby-1.8.7-p330) (2011-08-23 17ea768) (OpenJDK 64-Bit Server VM 1.6.0_22) [linux-amd64-java]:
user system total real
n=1 0.150000 0.000000 0.150000 ( 0.023000)
n=2 0.003000 0.000000 0.003000 ( 0.003000)
n=3 0.001000 0.000000 0.001000 ( 0.001000)
n=4 0.006000 0.000000 0.006000 ( 0.007000)
n=5 0.022000 0.000000 0.022000 ( 0.022000)
n=6 0.173000 0.000000 0.173000 ( 0.173000)
n=7 1.045000 0.000000 1.045000 ( 1.045000)
n=8 0.821000 0.000000 0.821000 ( 0.821000)
n=9 1.917000 0.000000 1.917000 ( 1.917000)
n=10 25.652000 0.000000 25.652000 ( 25.652000)
Rubinius 2.0.0dev (1.8.7 5e67b11e yyyy-mm-dd JI) [x86_64-unknown-linux-gnu]:
user system total real
n=1 0.000000 0.000000 0.000000 ( 0.000025)
n=2 0.000000 0.000000 0.000000 ( 0.000394)
n=3 0.000000 0.000000 0.000000 ( 0.000145)
n=4 0.000000 0.000000 0.000000 ( 0.000637)
n=5 0.004000 0.000000 0.004000 ( 0.010315)
n=6 0.036994 0.003000 0.039994 ( 0.151349)
n=7 0.130980 0.009998 0.140978 ( 0.584286)
n=8 0.579912 0.028996 0.608908 ( 0.946738)
n=9 5.563154 0.191970 5.755124 ( 6.588485)
n=10 59.973882 2.427631 62.401513 ( 80.877847)
Ruby 1.9.2-p290 (2011-07-09 revision 32553) [x86_64-linux]:
user system total real
n=10 0.000000 0.000000 0.000000 ( 0.015275)
n=11 0.020000 0.000000 0.020000 ( 0.033685)
n=12 0.050000 0.000000 0.050000 ( 0.063667)
n=13 0.110000 0.010000 0.120000 ( 0.131612)
n=14 0.230000 0.010000 0.240000 ( 0.276595)
n=15 0.500000 0.010000 0.510000 ( 0.559058)
n=16 1.040000 0.050000 1.090000 ( 1.222567)
n=17 2.110000 0.120000 2.230000 ( 2.607683)
n=18 4.410000 0.230000 4.640000 ( 5.223074)
n=19 9.240000 0.460000 9.700000 ( 10.995905)
n=20 19.280000 0.810000 20.090000 ( 23.152085)
JRuby 1.6.4 (ruby-1.8.7-p330) (2011-08-23 17ea768) (OpenJDK 64-Bit Server VM 1.6.0_22) [linux-amd64-java]:
user system total real
n=10 0.539000 0.000000 0.539000 ( 0.369000)
n=11 0.609000 0.000000 0.609000 ( 0.609000)
n=12 0.490000 0.000000 0.490000 ( 0.490000)
n=13 0.701000 0.000000 0.701000 ( 0.701000)
n=14 1.013000 0.000000 1.013000 ( 1.013000)
n=15 0.729000 0.000000 0.729000 ( 0.729000)
n=16 0.306000 0.000000 0.306000 ( 0.306000)
n=17 0.601000 0.000000 0.601000 ( 0.601000)
n=18 1.291000 0.000000 1.291000 ( 1.291000)
n=19 2.591000 0.000000 2.591000 ( 2.591000)
n=20 5.573000 0.000000 5.573000 ( 5.573000)
Rubinius 2.0.0dev (1.8.7 5e67b11e yyyy-mm-dd JI) [x86_64-unknown-linux-gnu]:
user system total real
n=10 0.050992 0.009999 0.060991 ( 0.196739)
n=11 0.088986 0.011998 0.100984 ( 0.295952)
n=12 0.141979 0.003999 0.145978 ( 0.632228)
n=13 0.248962 0.012998 0.261960 ( 0.939763)
n=14 0.482927 0.015998 0.498925 ( 0.562893)
n=15 0.988849 0.035994 1.024843 ( 1.134604)
n=16 2.034691 0.076988 2.111679 ( 2.342626)
n=17 4.188363 0.158976 4.347339 ( 4.882135)
n=18 8.595693 0.347947 8.943640 ( 10.191949)
n=19 17.662315 0.674898 18.337213 ( 20.490505)
n=20 36.434461 1.536766 37.971227 ( 42.821087)