追記:get()だけじゃなくてset()もベンチとってみた。Cache::Memcachedと比べてget()はざっくり6倍から9倍、set()は2倍から4倍速いみたい。

追記2:一番最後のset()ベンチだけは::Fastが速かった事に今更気づいた。レポート読み間違え。なんとなーーーく俺のベンチでは圧縮が行われてない気がする。誰か知ってたら教えてください。

id:miyagawaさんがLibMemcached.pmに関して「cache::memcached::fast とか ::XS とかとのベンチはどれくらい?」と言っていたので、やってみた。

ベンチ対象はCache::Memcached, Cache::Memcached::Fast,それにCache::Memcached::LibMemcached。Cache::Memcached::XSはlibmemcacheをインストールしてもコンパイルできなかったのでパス。

ベンチの内容も、ただ単純にスカラーをget()するためのベンチマークだけではなく、スカラー、ハッシュ(つまりStorableでシリアライズする)、それに大きめのデータ(Compress::ZlibでmemGzipする)3つのパターンを組み込んでみた。

結果、圧倒的にlibmemcachedが速い。Perlバインディング自体ももう少し最適かできるかもしれないけど、今の感じだとPerlレイヤーで最適化できるところはほとんどないような気がするな。
daisuke@beefcake Cache-Memcached-LibMemcached$ perl -Mblib tools/benchmark.pl ==== Benchmark "Simple get() (scalar)" ==== Rate perl_memcahed memcached_fast libmemcached perl_memcahed 3837/s -- -80% -88% memcached_fast 18939/s 394% -- -42% libmemcached 32895/s 757% 74% -- ==== Benchmark "Simple get() (w/serialize)" ==== Rate perl_memcahed memcached_fast libmemcached perl_memcahed 3658/s -- -77% -84% memcached_fast 16077/s 340% -- -29% libmemcached 22727/s 521% 41% -- ==== Benchmark "Simple get() (w/compression)" ==== Rate perl_memcahed memcached_fast libmemcached perl_memcahed 3720/s -- -74% -81% memcached_fast 14535/s 291% -- -27% libmemcached 19841/s 433% 37% -- ==== Benchmark "Simple set() (scalar)" ==== Rate perl_memcahed memcached_fast libmemcached perl_memcahed 7163/s -- -61% -77% memcached_fast 18519/s 159% -- -41% l ibmemcached 31447/s 339% 70% -- ==== Benchmark "Simple set() (w/serialize)" ==== Rate perl_memcahed memcached_fast libmemcached perl_memcahed 3529/s -- -31% -41% memcached_fast 5086/s 44% -- -15% libmemcached 6002/s 70% 18% -- ==== Benchmark "Simple set() (w/compress)" ==== Rate perl_memcahed libmemcached memcached_fast perl_memcahed 6684/s -- -39% -63% libmemcached 10989/s 64% -- -39% memcached_fast 17986/s 169% 64% --

カテゴリ

トラックバック(0)

このブログ記事に対するトラックバックURL: http://mt.endeworks.jp/cgi-bin/mt-tb.cgi/2000

コメントする

筆者

daisuke - a.k.a. "lestrrat", Perl hacker at Livedoor Inc, Japan Perl Association 代表理事

このブログ記事について

このページは、Dが2008年1月13日 22:59に書いたブログ記事です。

ひとつ前のブログ記事は「LibMemcached.pmがCache::MemcachedのAPIをほぼ全て網羅」です。

次のブログ記事は「POE::Component::Q4M」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 4.1