File: BENCHMARKS
Here are some benchmarks for various architectures and operating systems.
You can easily run your own benchmarks, as long as you have memcached itself on your system:
$ ruby -e 'system("ruby #{File.dirname(`gem which memcached`.split("\n").
last)}/../test/profile/benchmark.rb")'
x86-64 OS X
These benchmarks were run on an OS X 10.5 Core 2 Duo machine:
Darwin amber.local 9.8.0 Darwin Kernel Version 9.8.0: Wed Jul 15 16:55:01 PDT
2009; root:xnu-1228.15.4~1/RELEASE_I386 i386
Ruby 1.9.2p0
Loaded memcached 0.20.1
Loaded remix-stash 1.1.3
Loaded memcache-client 1.8.5
Loaded dalli 0.9.2
Loops is 20000
Stack depth is 0
Small value size is: 19 bytes
Large value size is: 4189 bytes
No matching processes belonging to you were found
user system total real
set: dalli:bin 4.820000 1.510000 6.330000 ( 7.225315)
set: libm:ascii 0.570000 0.980000 1.550000 ( 4.003960)
set: libm:ascii:pipelined 0.170000 0.020000 0.190000 ( 0.203469)
set: libm:ascii:udp 0.450000 0.570000 1.020000 ( 2.077743)
set: libm:bin 0.480000 0.990000 1.470000 ( 3.692485)
set: libm:bin:buffered 0.140000 0.120000 0.260000 ( 0.870617)
set: mclient:ascii 7.300000 3.290000 10.590000 ( 11.325935)
set: stash:bin 2.600000 1.170000 3.770000 ( 6.621495)
get: dalli:bin 5.540000 1.660000 7.200000 ( 7.762690)
get: libm:ascii 0.680000 1.040000 1.720000 ( 3.918273)
get: libm:ascii:pipelined 0.780000 1.270000 2.050000 ( 4.130800)
get: libm:ascii:udp 0.580000 0.570000 1.150000 ( 2.097873)
get: libm:bin 0.560000 1.000000 1.560000 ( 3.504147)
get: libm:bin:buffered 0.670000 1.330000 2.000000 ( 4.134638)
get: mclient:ascii 8.820000 3.440000 12.260000 ( 12.775693)
get: stash:bin 2.390000 1.310000 3.700000 ( 5.927902)
get-multi: dalli:bin 6.910000 2.790000 9.700000 ( 10.351834)
get-multi: libm:ascii 0.780000 0.640000 1.420000 ( 2.400928)
get-multi: libm:ascii:pipelined 0.780000 0.650000 1.430000 ( 2.398865)
get-multi: libm:ascii:udp 0.730000 0.480000 1.210000 ( 1.667487)
get-multi: libm:bin 0.790000 0.940000 1.730000 ( 3.077329)
get-multi: libm:bin:buffered 0.800000 0.980000 1.780000 ( 3.120033)
append: dalli:bin 5.340000 1.820000 7.160000 ( 9.463384)
append: libm:ascii 0.610000 1.060000 1.670000 ( 6.177618)
append: libm:ascii:pipelined 0.190000 0.040000 0.230000 ( 10.719099)
append: libm:ascii:udp 0.500000 0.590000 1.090000 ( 4.877804)
append: libm:bin 0.530000 1.030000 1.560000 ( 12.678462)
append: libm:bin:buffered 0.800000 1.480000 2.280000 ( 20.612821)
append: mclient:ascii 7.680000 3.500000 11.180000 ( 17.252513)
prepend: dalli:bin 7.020000 1.990000 9.010000 ( 13.790809)
prepend: libm:ascii 0.860000 1.160000 2.020000 ( 22.172399)
prepend: libm:ascii:pipelined 0.180000 0.020000 0.200000 ( 0.228367)
prepend: libm:ascii:udp 0.540000 0.630000 1.170000 ( 14.770980)
prepend: libm:bin 1.150000 1.050000 2.200000 ( 5.341857)
prepend: libm:bin:buffered 1.250000 1.390000 2.640000 ( 5.621586)
prepend: mclient:ascii 7.650000 3.420000 11.070000 ( 11.717946)
delete: dalli:bin 5.320000 1.760000 7.080000 ( 7.442455)
delete: libm:ascii 1.150000 1.050000 2.200000 ( 4.588383)
delete: libm:ascii:pipelined 0.290000 0.370000 0.660000 ( 0.773548)
delete: libm:ascii:udp 1.060000 0.660000 1.720000 ( 3.389179)
delete: libm:bin 1.080000 1.040000 2.120000 ( 4.461896)
delete: libm:bin:buffered 0.230000 0.350000 0.580000 ( 1.114071)
delete: mclient:ascii 7.640000 3.380000 11.020000 ( 11.271308)
get-missing: dalli:bin 5.410000 1.760000 7.170000 ( 7.756717)
get-missing: libm:ascii 1.190000 1.000000 2.190000 ( 4.992572)
get-missing: libm:ascii:pipelined 1.290000 1.410000 2.700000 ( 4.775207)
get-missing: libm:ascii:udp 1.090000 0.660000 1.750000 ( 3.354907)
get-missing: libm:bin 1.170000 1.060000 2.230000 ( 4.550311)
get-missing: libm:bin:buffered 1.270000 1.390000 2.660000 ( 4.834454)
get-missing: mclient:ascii 7.570000 3.390000 10.960000 ( 11.470425)
get-missing: stash:bin 2.350000 1.340000 3.690000 ( 6.073585)
append-missing: dalli:bin 7.740000 1.980000 9.720000 ( 10.168658)
append-missing: libm:ascii 1.240000 1.070000 2.310000 ( 5.397586)
append-missing: libm:ascii:pipelined 0.190000 0.020000 0.210000 ( 0.227031)
append-missing: libm:ascii:udp 1.130000 0.680000 1.810000 ( 3.926319)
append-missing: libm:bin 1.140000 1.060000 2.200000 ( 4.798300)
append-missing: libm:bin:buffered 1.250000 1.410000 2.660000 ( 5.091978)
append-missing: mclient:ascii 7.830000 3.440000 11.270000 ( 11.654683)
prepend-missing: dalli:bin 7.750000 1.990000 9.740000 ( 10.179379)
prepend-missing: libm:ascii 1.240000 1.070000 2.310000 ( 5.418788)
prepend-missing: libm:ascii:pipelined 0.180000 0.010000 0.190000 ( 0.201024)
prepend-missing: libm:ascii:udp 1.120000 0.680000 1.800000 ( 3.931292)
prepend-missing: libm:bin 1.150000 1.070000 2.220000 ( 4.820438)
prepend-missing: libm:bin:buffered 1.240000 1.410000 2.650000 ( 5.083105)
prepend-missing: mclient:ascii 7.850000 3.450000 11.300000 ( 11.663710)
set-large: dalli:bin 5.470000 1.700000 7.170000 ( 7.819158)
set-large: libm:ascii 0.620000 1.120000 1.740000 ( 4.489379)
set-large: libm:ascii:pipelined 0.330000 0.290000 0.620000 ( 1.235649)
set-large: libm:ascii:udp 0.500000 0.650000 1.150000 ( 3.026405)
set-large: libm:bin 0.510000 1.060000 1.570000 ( 4.105516)
set-large: libm:bin:buffered 0.300000 0.460000 0.760000 ( 1.590685)
set-large: mclient:ascii 8.170000 3.580000 11.750000 ( 12.304508)
set-large: stash:bin 3.820000 1.190000 5.010000 ( 7.826406)
get-large: dalli:bin 6.070000 1.980000 8.050000 ( 8.625461)
get-large: libm:ascii 0.920000 1.090000 2.010000 ( 4.725218)
get-large: libm:ascii:pipelined 1.010000 1.470000 2.480000 ( 5.123318)
get-large: libm:ascii:udp 0.840000 0.740000 1.580000 ( 2.479091)
get-large: libm:bin 0.810000 1.200000 2.010000 ( 4.404212)
get-large: libm:bin:buffered 0.890000 1.430000 2.320000 ( 4.991805)
get-large: mclient:ascii 10.270000 4.040000 14.310000 ( 14.881824)
get-large: stash:bin 2.480000 1.350000 3.830000 ( 6.041167)
hash:default 0.330000 0.000000 0.330000 ( 0.338913)
hash:md5 0.740000 0.000000 0.740000 ( 0.749003)
hash:crc 0.430000 0.010000 0.440000 ( 0.428859)
hash:fnv1_64 0.800000 0.000000 0.800000 ( 0.814617)
hash:fnv1a_64 0.290000 0.000000 0.290000 ( 0.289964)
hash:fnv1_32 0.270000 0.000000 0.270000 ( 0.273325)
hash:fnv1a_32 0.280000 0.010000 0.290000 ( 0.307831)
hash:hsieh 0.130000 0.000000 0.130000 ( 0.128252)
hash:murmur 0.210000 0.000000 0.210000 ( 0.212935)
hash:jenkins 0.250000 0.000000 0.250000 ( 0.257421)
hash:none 0.130000 0.000000 0.130000 ( 0.124726)