From: brabuhr@... Date: 2009-11-24T23:54:15+09:00 Subject: Re: Distinct Sets (#225) On Tue, Nov 24, 2009 at 1:20 AM, lith wrote: >> And it's not so slow, > > I wrote a small approximative benchmark for that runs the script with > different set configurations. > http://pastie.org/711915 > cat /proc/cpuinfo | fgrep name model name : Intel(R) Pentium(R) M processor 1.60GHz > uname -a Linux eXist 2.6.31-14-generic #48-Ubuntu SMP Fri Oct 16 14:04:26 UTC 2009 i686 GNU/Linux > ruby1.8 -v 711915.rb 225.rb ruby 1.8.7 (2009-06-12 patchlevel 174) [i486-linux] user system total real elements * sets: 1 * 5 => 1 * 1 0.010000 0.000000 0.010000 ( 0.010348) elements * sets: 1 * 5 => 2 * 1 0.010000 0.000000 0.010000 ( 0.008285) elements * sets: 2 * 5 => 3 * 1 0.010000 0.000000 0.010000 ( 0.015534) elements * sets: 2 * 5 => 4 * 1 0.020000 0.000000 0.020000 ( 0.020882) elements * sets: 2 * 5 => 5 * 1 0.020000 0.010000 0.030000 ( 0.023482) elements * sets: 3 * 5 => 6 * 1 0.020000 0.000000 0.020000 ( 0.021767) elements * sets: 3 * 5 => 7 * 1 0.040000 0.000000 0.040000 ( 0.035285) elements * sets: 3 * 5 => 8 * 1 0.020000 0.010000 0.030000 ( 0.028141) elements * sets: 4 * 5 => 9 * 1 0.020000 0.000000 0.020000 ( 0.028562) elements * sets: 4 * 5 => 10 * 1 0.020000 0.010000 0.030000 ( 0.029465) elements * sets: 18 * 255 => 1 * 51 0.780000 0.140000 0.920000 ( 0.922092) elements * sets: 35 * 255 => 2 * 51 1.330000 0.190000 1.520000 ( 1.526110) elements * sets: 52 * 255 => 3 * 51 1.110000 0.220000 1.330000 ( 1.338236) elements * sets: 69 * 255 => 4 * 51 1.670000 0.280000 1.950000 ( 1.942574) elements * sets: 86 * 255 => 5 * 51 1.440000 0.320000 1.760000 ( 1.763389) elements * sets: 103 * 255 => 6 * 51 1.820000 0.330000 2.150000 ( 2.147160) elements * sets: 120 * 255 => 7 * 51 1.720000 0.430000 2.150000 ( 2.165951) elements * sets: 137 * 255 => 8 * 51 2.300000 0.480000 2.780000 ( 2.774613) elements * sets: 154 * 255 => 9 * 51 2.180000 0.390000 2.570000 ( 2.571221) elements * sets: 171 * 255 => 10 * 51 2.430000 0.500000 2.930000 ( 2.921943) elements * sets: 34 * 505 => 1 * 101 2.550000 0.650000 3.200000 ( 3.199823) elements * sets: 68 * 505 => 2 * 101 4.540000 1.000000 5.540000 ( 5.547267) elements * sets: 102 * 505 => 3 * 101 3.980000 0.740000 4.720000 ( 4.744038) elements * sets: 135 * 505 => 4 * 101 5.890000 1.210000 7.100000 ( 7.099683) elements * sets: 169 * 505 => 5 * 101 5.170000 1.120000 6.290000 ( 6.288145) elements * sets: 203 * 505 => 6 * 101 6.660000 1.510000 8.170000 ( 11.120129) elements * sets: 236 * 505 => 7 * 101 6.470000 1.360000 7.830000 ( 7.843291) elements * sets: 270 * 505 => 8 * 101 8.390000 1.830000 10.220000 ( 10.233364) elements * sets: 304 * 505 => 9 * 101 7.750000 1.630000 9.380000 ( 9.377075) elements * sets: 337 * 505 => 10 * 101 8.730000 2.000000 10.730000 ( 10.752132) And another one-off benchmark I had run: per sets set user system total real 10, 1 0.000000 0.000000 0.000000 ( 0.005441) 10, 10 0.010000 0.000000 0.010000 ( 0.006944) 10, 100 0.040000 0.010000 0.050000 ( 0.044136) 10, 1000 0.310000 0.060000 0.370000 ( 0.372266) 10, 10000 1.620000 0.090000 1.710000 ( 1.718613) 10, 100000 18.700000 1.020000 19.720000 ( 19.869159) user system total real 1, 10 0.000000 0.000000 0.000000 ( 0.002515) 10, 10 0.010000 0.000000 0.010000 ( 0.006701) 100, 10 0.370000 0.080000 0.450000 ( 0.454811) 1000, 10 36.210000 8.340000 44.550000 ( 44.798496) user system total real 1, 1 0.000000 0.000000 0.000000 ( 0.000435) 10, 10 0.010000 0.000000 0.010000 ( 0.006239) 100, 100 2.900000 0.750000 3.650000 ( 3.762373) (Sets were filled with random integers.)