TokyoTyrant.pmてすと
Tokyo Tyrantのperlクライアントがでているので、軽くベンチとってみた
Tokyo Tyrantは
$ ttserver
だけで起動。on memoryのhash dbになりますね
このサーバに対して、Cache::Memcached、同Fast、TokyoTyrant.pmで接続してgetの速度を比較してみた
バージョンは
| Tokyo Tyrant | 1.1.11 |
| tokyotyrant-perl | 1.4 |
| Cache::Memcached | 1.21 |
| Cache::Memcached::Fast | 0.08 |
先に結果
$ perl tt_bench.pl
Rate cache::memcached tokyotyrant fast
cache::memcached 7168/s -- -68% -82%
tokyotyrant 22222/s 210% -- -46%
fast 40816/s 469% 84% --
TokyoTyrant.pmはなかなか速い
独自プロトコルで通信できるからですかねぇ
ベンチマークスクリプト
use strict;
use warnings;
use Cache::Memcached::Fast;
use Cache::Memcached;
use TokyoTyrant;
use Benchmark qw/cmpthese/;
my $n = 20000;
my $key = "foo";
my $fast = Cache::Memcached::Fast->new( { servers => ['127.0.0.1:1978'] } );
$fast->set( $key => rand );
my $pp = Cache::Memcached->new( { servers => ['127.0.0.1:1978'] } );
my $tt = TokyoTyrant::RDB->new();
$tt->open("localhost", 1978);
cmpthese(
$n => {
tokyotyrant => sub {
$tt->get($key);
},
fast => sub {
$fast->get($key);
},
'cache::memcached' => sub {
$pp->get($key);
},
}
);
created by blog.nomadscafe.jp
コメント
コメントを投稿
コメントを投稿するにはログインが必要です
やはりバイナリプロトコルなのが大きいと思います。
バイナリだとクライアント側の処理が軽くなるだけでなく、サーバ側も軽くなるので。
ttserver側のmemcached互換インターフェイスはあまり最適化していないし。
Cache::TokyoTyrant::Fastをいつか誰かが書く予感。