Skip to content

Instantly share code, notes, and snippets.

@sdhull
Created February 14, 2013 23:47
Show Gist options
  • Save sdhull/4957451 to your computer and use it in GitHub Desktop.
Save sdhull/4957451 to your computer and use it in GitHub Desktop.
Up-to-date Benchmark of memcache-client vs memcached vs dalli vs a couple others. libm = memcached mclient = memecache-client
! ruby /Users/sdhull/.rvm/gems/ruby-1.9.2-p180@memcachebm/gems/memcached-1.5.0/test/profile/benchmark.rb
Darwin parallax 12.2.1 Darwin Kernel Version 12.2.1: Thu Oct 18 16:32:48 PDT 2012; root:xnu-2050.20.9~2/RELEASE_X86_64 x86_64
ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-darwin10.7.3]
RUBY_VERSION=ruby-1.9.2-p180
Ruby 1.9.2p180
Loaded memcached 1.5.0
Loaded remix-stash 1.1.3
Loaded memcache-client 1.8.5
Loaded kgio 2.8.0
Loaded dalli 2.6.2
PID is 93864
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 4.540000 2.210000 6.750000 ( 9.217954)
set: libm:ascii 0.730000 1.440000 2.170000 ( 5.679708)
set: libm:ascii:pipeline 0.210000 0.010000 0.220000 ( 0.222306)
set: libm:ascii:udp 0.420000 0.640000 1.060000 ( 2.637125)
set: libm:bin 0.550000 1.390000 1.940000 ( 5.238784)
set: libm:bin:buffer 0.180000 0.380000 0.560000 ( 0.830400)
set: mclient:ascii 9.750000 3.060000 12.810000 ( 13.124011)
set: stash:bin 3.530000 1.910000 5.440000 ( 9.304344)
get: dalli:bin 4.710000 2.290000 7.000000 ( 9.314498)
get: libm:ascii 0.870000 1.400000 2.270000 ( 5.404822)
get: libm:ascii:pipeline 0.850000 1.650000 2.500000 ( 6.053553)
get: libm:ascii:udp 0.590000 0.670000 1.260000 ( 2.575507)
get: libm:bin 0.640000 1.780000 2.420000 ( 5.576258)
get: libm:bin:buffer 0.700000 1.940000 2.640000 ( 5.080641)
get: mclient:ascii 11.230000 3.100000 14.330000 ( 14.492095)
get: stash:bin 2.930000 1.970000 4.900000 ( 8.223847)
get-multi: dalli:bin 7.220000 3.040000 10.260000 ( 10.253507)
get-multi: libm:ascii 0.750000 0.890000 1.640000 ( 2.549049)
get-multi: libm:ascii:pipeline 0.760000 0.890000 1.650000 ( 2.567240)
get-multi: libm:ascii:udp 0.670000 0.760000 1.430000 ( 1.773724)
get-multi: libm:bin 0.710000 1.450000 2.160000 ( 2.921377)
get-multi: libm:bin:buffer 0.740000 1.460000 2.200000 ( 2.966413)
append: dalli:bin 4.040000 2.190000 6.230000 ( 16.711379)
append: libm:ascii 1.030000 1.550000 2.580000 ( 13.280398)
append: libm:ascii:pipeline 0.250000 0.020000 0.270000 ( 4.301085)
append: libm:ascii:udp 0.820000 0.840000 1.660000 ( 10.954365)
append: libm:bin 0.820000 1.540000 2.360000 ( 13.231726)
append: libm:bin:buffer 0.630000 1.360000 1.990000 ( 5.563365)
append: mclient:ascii 9.980000 3.470000 13.450000 ( 19.021994)
prepend: dalli:bin 3.970000 2.170000 6.140000 ( 16.656629)
prepend: libm:ascii 1.020000 1.550000 2.570000 ( 13.593788)
prepend: libm:ascii:pipeline 0.260000 0.020000 0.280000 ( 4.513879)
prepend: libm:ascii:udp 0.720000 0.720000 1.440000 ( 10.261413)
prepend: libm:bin 0.820000 1.550000 2.370000 ( 13.416904)
prepend: libm:bin:buffer 0.820000 1.850000 2.670000 ( 6.908559)
prepend: mclient:ascii 10.170000 3.520000 13.690000 ( 19.578734)
delete: dalli:bin 3.880000 2.180000 6.060000 ( 8.257655)
delete: libm:ascii 1.420000 1.580000 3.000000 ( 6.075337)
delete: libm:ascii:pipeline 0.160000 0.010000 0.170000 ( 0.167580)
delete: libm:ascii:udp 1.050000 0.770000 1.820000 ( 3.024152)
delete: libm:bin 1.350000 1.560000 2.910000 ( 5.998146)
delete: libm:bin:buffer 1.010000 0.870000 1.880000 ( 1.910869)
delete: mclient:ascii 9.170000 2.790000 11.960000 ( 12.062439)
exist: dalli:bin 4.700000 2.270000 6.970000 ( 9.266313)
exist: libm:ascii 0.500000 1.340000 1.840000 ( 5.165174)
exist: libm:ascii:pipeline 0.730000 1.590000 2.320000 ( 5.920796)
exist: libm:ascii:udp 0.300000 0.650000 0.950000 ( 2.516085)
exist: libm:bin 0.500000 1.360000 1.860000 ( 5.095299)
exist: libm:bin:buffer 0.300000 0.870000 1.170000 ( 1.506199)
get-missing: dalli:bin 3.920000 2.240000 6.160000 ( 8.506601)
get-missing: libm:ascii 1.500000 1.590000 3.090000 ( 6.184248)
get-missing: libm:ascii:pipeline 1.430000 1.850000 3.280000 ( 6.368362)
get-missing: libm:ascii:udp 1.190000 0.820000 2.010000 ( 3.209390)
get-missing: libm:bin 1.490000 1.890000 3.380000 ( 6.844355)
get-missing: libm:bin:buffer 1.500000 2.170000 3.670000 ( 6.615862)
get-missing: mclient:ascii 9.300000 2.750000 12.050000 ( 12.140743)
append-missing: dalli:bin 3.970000 2.250000 6.220000 ( 8.845450)
append-missing: libm:ascii 1.710000 1.660000 3.370000 ( 6.993350)
append-missing: libm:ascii:pipeline 0.230000 0.010000 0.240000 ( 0.246461)
append-missing: libm:ascii:udp 1.260000 0.820000 2.080000 ( 3.548182)
append-missing: libm:bin 1.510000 1.640000 3.150000 ( 6.671630)
append-missing: libm:bin:buffer 1.430000 1.890000 3.320000 ( 6.973672)
append-missing: mclient:ascii 9.940000 3.100000 13.040000 ( 13.202149)
prepend-missing: dalli:bin 4.040000 2.290000 6.330000 ( 9.098256)
prepend-missing: libm:ascii 1.720000 1.670000 3.390000 ( 7.015172)
prepend-missing: libm:ascii:pipeline 0.250000 0.010000 0.260000 ( 0.261311)
prepend-missing: libm:ascii:udp 1.240000 0.800000 2.040000 ( 3.496803)
prepend-missing: libm:bin 1.510000 1.630000 3.140000 ( 6.697495)
prepend-missing: libm:bin:buffer 1.450000 1.910000 3.360000 ( 7.042083)
prepend-missing: mclient:ascii 9.810000 3.090000 12.900000 ( 13.051412)
exist-missing: dalli:bin 3.940000 2.230000 6.170000 ( 8.564003)
exist-missing: libm:ascii 0.890000 1.540000 2.430000 ( 6.177469)
exist-missing: libm:ascii:pipeline 0.830000 1.700000 2.530000 ( 5.885899)
exist-missing: libm:ascii:udp 0.550000 0.780000 1.330000 ( 2.982014)
exist-missing: libm:bin 0.880000 1.540000 2.420000 ( 6.026141)
exist-missing: libm:bin:buffer 0.790000 1.760000 2.550000 ( 6.333235)
set-large: dalli:bin 5.740000 3.620000 9.360000 ( 12.794587)
set-large: libm:ascii 0.810000 1.480000 2.290000 ( 5.958302)
set-large: libm:ascii:pipeline 0.340000 0.310000 0.650000 ( 0.645148)
set-large: libm:ascii:udp 0.480000 0.730000 1.210000 ( 2.905868)
set-large: libm:bin 0.610000 1.430000 2.040000 ( 5.533814)
set-large: libm:bin:buffer 0.280000 0.620000 0.900000 ( 1.232049)
set-large: mclient:ascii 9.910000 3.430000 13.340000 ( 13.455661)
set-large: stash:bin 5.440000 2.220000 7.660000 ( 11.549303)
get-large: dalli:bin 4.730000 2.270000 7.000000 ( 9.304233)
get-large: libm:ascii 0.870000 1.400000 2.270000 ( 5.383775)
get-large: libm:ascii:pipeline 0.830000 1.610000 2.440000 ( 5.982054)
get-large: libm:ascii:udp 0.580000 0.680000 1.260000 ( 2.542015)
get-large: libm:bin 0.630000 1.760000 2.390000 ( 5.564954)
get-large: libm:bin:buffer 0.690000 1.950000 2.640000 ( 5.117548)
get-large: mclient:ascii 11.070000 2.970000 14.040000 ( 14.191574)
get-large: stash:bin 2.940000 1.970000 4.910000 ( 8.303870)
@arthurnn
Copy link

arthurnn commented Jul 3, 2013

Would you be able to post the code of the benchmark?

@bf4
Copy link

bf4 commented Apr 1, 2014

apparently not

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment