Permalink
Fetching contributors…
Cannot retrieve contributors at this time
147 lines (126 sloc) 9.25 KB
Here are some benchmark results.
You can easily run your own benchmarks, as long as you have memcached itself on your system:
$ bundle exec rake benchmark
== x86-64 OS X
These benchmarks were run on a 64-bit OS X machine, with memcached 1.4.24:
Darwin snowball 15.3.0 Darwin Kernel Version 15.3.0: Thu Dec 10 18:40:58 PST 2015; root:xnu-3248.30.4~1/RELEASE_X86_64 x86_64
ruby 2.1.7p400 (2015-08-18 revision 51632) [x86_64-darwin15.0]
RUBY_ENGINE=ruby
RUBY_ROOT=/Users/arthurnn/.rubies/ruby-2.1.7
RUBYOPT=-rbundler/setup
RUBYLIB=/Users/arthurnn/.gem/ruby/2.1.7/gems/bundler-1.10.6/lib
RUBY_VERSION=2.1.7
Ruby 2.1.7p400
Loaded memcached 1.8.0
Loaded remix-stash 1.1.3
Loaded memcache-client 1.8.5
Loaded dalli 2.7.5
PID is 25952
Loops is 50000
Stack depth is 0
Small value size is: 19 bytes
Large value size is: 4189 bytes
user system total real
set: dalli:bin 6.140000 3.030000 9.170000 ( 11.740703)
set: libm:ascii 0.510000 1.550000 2.060000 ( 5.540367)
set: libm:ascii:pipeline 0.200000 0.030000 0.230000 ( 0.242075)
set: libm:ascii:udp 0.320000 0.660000 0.980000 ( 2.051241)
set: libm:bin 0.380000 1.500000 1.880000 ( 5.240533)
set: libm:bin:buffer 0.210000 0.440000 0.650000 ( 1.440736)
set: mclient:ascii 5.390000 3.330000 8.720000 ( 11.094337)
set: stash:bin 2.920000 1.920000 4.840000 ( 8.685715)
get: dalli:bin 5.830000 3.210000 9.040000 ( 11.292248)
get: libm:ascii 0.840000 1.800000 2.640000 ( 7.072240)
get: libm:ascii:pipeline 1.250000 2.860000 4.110000 ( 10.513256)
get: libm:ascii:udp 0.730000 0.830000 1.560000 ( 3.296948)
get: libm:bin 0.990000 2.770000 3.760000 ( 8.902650)
get: libm:bin:buffer 0.910000 3.190000 4.100000 ( 8.130182)
get: mclient:ascii 6.940000 3.440000 10.380000 ( 12.435542)
get: stash:bin 2.140000 1.870000 4.010000 ( 7.050235)
get-multi: dalli:bin 8.100000 3.560000 11.660000 ( 12.239817)
get-multi: libm:ascii 0.700000 1.130000 1.830000 ( 2.943079)
get-multi: libm:ascii:pipeline 0.750000 1.190000 1.940000 ( 3.122714)
get-multi: libm:ascii:udp 0.610000 0.670000 1.280000 ( 1.546763)
get-multi: libm:bin 0.920000 2.190000 3.110000 ( 5.223670)
get-multi: libm:bin:buffer 0.930000 2.220000 3.150000 ( 5.280691)
append: dalli:bin 5.870000 3.200000 9.070000 ( 22.472106)
append: libm:ascii 0.970000 2.150000 3.120000 ( 18.463404)
append: libm:ascii:pipeline 0.300000 0.040000 0.340000 ( 5.555134)
append: libm:ascii:udp 0.640000 0.820000 1.460000 ( 9.630847)
append: libm:bin 0.620000 1.820000 2.440000 ( 14.711178)
append: libm:bin:buffer 1.170000 3.130000 4.300000 ( 11.960384)
append: mclient:ascii 7.890000 4.740000 12.630000 ( 29.746835)
prepend: dalli:bin 7.260000 3.860000 11.120000 ( 28.830745)
prepend: libm:ascii 0.900000 1.990000 2.890000 ( 17.160139)
prepend: libm:ascii:pipeline 0.320000 0.050000 0.370000 ( 5.597601)
prepend: libm:ascii:udp 0.710000 0.850000 1.560000 ( 12.146740)
prepend: libm:bin 0.690000 1.920000 2.610000 ( 16.548869)
prepend: libm:bin:buffer 1.110000 2.990000 4.100000 ( 11.593440)
prepend: mclient:ascii 6.400000 4.070000 10.470000 ( 24.556245)
delete: dalli:bin 5.610000 3.170000 8.780000 ( 11.628410)
delete: libm:ascii 1.170000 1.980000 3.150000 ( 7.220840)
delete: libm:ascii:pipeline 0.140000 0.020000 0.160000 ( 0.164323)
delete: libm:ascii:udp 0.790000 1.060000 1.850000 ( 2.834595)
delete: libm:bin 0.990000 2.020000 3.010000 ( 6.377224)
delete: libm:bin:buffer 1.440000 1.980000 3.420000 ( 4.548943)
delete: mclient:ascii 5.660000 3.680000 9.340000 ( 11.798163)
exist: dalli:bin 6.600000 3.760000 10.360000 ( 13.333176)
exist: libm:ascii 0.470000 1.930000 2.400000 ( 6.562550)
exist: libm:ascii:pipeline 0.770000 2.500000 3.270000 ( 7.195691)
exist: libm:ascii:udp 0.250000 0.770000 1.020000 ( 2.093370)
exist: libm:bin 0.470000 1.980000 2.450000 ( 6.669954)
exist: libm:bin:buffer 0.490000 1.710000 2.200000 ( 3.794428)
get-missing: dalli:bin 5.100000 2.900000 8.000000 ( 10.280236)
get-missing: libm:ascii 1.120000 1.650000 2.770000 ( 6.234911)
get-missing: libm:ascii:pipeline 1.240000 2.540000 3.780000 ( 7.179858)
get-missing: libm:ascii:udp 0.940000 1.350000 2.290000 ( 3.321761)
get-missing: libm:bin 1.960000 3.790000 5.750000 ( 12.325343)
get-missing: libm:bin:buffer 1.810000 3.790000 5.600000 ( 10.514154)
get-missing: mclient:ascii 5.680000 3.770000 9.450000 ( 11.709241)
append-missing: dalli:bin 5.740000 3.280000 9.020000 ( 12.254871)
append-missing: libm:ascii 1.420000 1.890000 3.310000 ( 8.069294)
append-missing: libm:ascii:pipeline 0.220000 0.030000 0.250000 ( 0.261823)
append-missing: libm:ascii:udp 0.820000 0.690000 1.510000 ( 2.555414)
append-missing: libm:bin 1.040000 1.650000 2.690000 ( 6.381088)
append-missing: libm:bin:buffer 1.230000 2.340000 3.570000 ( 7.498664)
append-missing: mclient:ascii 5.600000 3.560000 9.160000 ( 11.720957)
prepend-missing: dalli:bin 5.470000 3.140000 8.610000 ( 11.572848)
prepend-missing: libm:ascii 1.490000 1.980000 3.470000 ( 8.491900)
prepend-missing: libm:ascii:pipeline 0.220000 0.030000 0.250000 ( 0.256449)
prepend-missing: libm:ascii:udp 0.940000 0.730000 1.670000 ( 2.918613)
prepend-missing: libm:bin 1.120000 1.830000 2.950000 ( 6.795458)
prepend-missing: libm:bin:buffer 1.380000 2.920000 4.300000 ( 8.847854)
prepend-missing: mclient:ascii 5.820000 3.750000 9.570000 ( 12.285245)
exist-missing: dalli:bin 5.010000 2.800000 7.810000 ( 10.151381)
exist-missing: libm:ascii 0.740000 1.780000 2.520000 ( 6.879934)
exist-missing: libm:ascii:pipeline 0.790000 2.170000 2.960000 ( 6.531277)
exist-missing: libm:ascii:udp 0.410000 0.740000 1.150000 ( 2.276789)
exist-missing: libm:bin 0.840000 1.910000 2.750000 ( 8.004243)
exist-missing: libm:bin:buffer 0.700000 2.090000 2.790000 ( 6.463543)
set-large: dalli:bin 7.980000 4.680000 12.660000 ( 16.486839)
set-large: libm:ascii 0.610000 1.670000 2.280000 ( 6.245315)
set-large: libm:ascii:pipeline 0.400000 0.510000 0.910000 ( 0.930710)
set-large: libm:ascii:udp 0.350000 0.730000 1.080000 ( 2.305644)
set-large: libm:bin 0.440000 1.590000 2.030000 ( 5.655186)
set-large: libm:bin:buffer 0.380000 1.050000 1.430000 ( 2.445995)
set-large: mclient:ascii 6.480000 4.310000 10.790000 ( 14.100555)
set-large: stash:bin 4.590000 2.490000 7.080000 ( 11.164275)
get-large: dalli:bin 5.990000 4.320000 10.310000 ( 12.651252)
get-large: libm:ascii 0.710000 2.010000 2.720000 ( 6.290244)
get-large: libm:ascii:pipeline 0.810000 2.560000 3.370000 ( 6.832158)
get-large: libm:ascii:udp 0.440000 0.850000 1.290000 ( 2.274852)
get-large: libm:bin 0.950000 2.660000 3.610000 ( 8.404311)
get-large: libm:bin:buffer 0.940000 3.220000 4.160000 ( 8.354847)
get-large: mclient:ascii 7.420000 3.740000 11.160000 ( 13.644167)
get-large: stash:bin 2.570000 2.140000 4.710000 ( 8.578543)
hash:default 0.420000 0.000000 0.420000 ( 0.421850)
hash:md5 0.790000 0.010000 0.800000 ( 0.798812)
hash:crc 0.490000 0.000000 0.490000 ( 0.504619)
hash:fnv1_64 0.320000 0.000000 0.320000 ( 0.318709)
hash:fnv1a_64 0.290000 0.000000 0.290000 ( 0.298615)
hash:fnv1_32 0.300000 0.000000 0.300000 ( 0.295191)
hash:fnv1a_32 0.290000 0.010000 0.300000 ( 0.298164)
hash:hsieh 0.110000 0.000000 0.110000 ( 0.108996)
hash:murmur 0.150000 0.000000 0.150000 ( 0.157561)
hash:jenkins 0.190000 0.000000 0.190000 ( 0.191567)
hash:none 0.110000 0.000000 0.110000 ( 0.108987)