Memcached と PStore のベンチマーク比較
tDiary のプラグインを作っていると、ローカルにキャッシュを保存することがよくある。 flickr プラグインが取得した XML の写真情報だったり、プロフィールプラグインが取得したプロフィールデータだったり。 今は、 PStore を使って保存しているけど、 Memcached を使ったらどうなるかと思って比較してみた。
比較対象
- 1ファイルに全てのデータを保存する PStore (ファイル数 = 1) → PStoreAdapter
- 1ファイルに1データを保存する PStore (ファイル数 = データ数) → PStoreAdapter2
- Memcached → MemcacheAdapter
ベンチマーク環境
Rubyで書いた。gistにて公開。 データ数を10, 100, 1000と増やし、それぞれの書き込み時間と読み込み時間を計測した。
- Intel Core 2 Duo 2.2 GHz, 4GB memory
- Mac OS X 10.6.1
ベンチマーク結果
「full」ボタンを押すと全画面表示される。 上からデータ数10, 100, 1000での時間。ループ回数は10000回。
PStore and Memcached benchmark
View more documents from Kohei MATSUOKA.
分かったこと
- PStoreで1ファイルにデータを詰め込むとスケールしない。
- PStoreで1ファイル1データとするとスケールする。
- PStoreとMemcachedの時間は同じくらい。
- PStoreは、おそらくディスクのキャッシュが効いているから。ディスクIOが発生すると遅くなるのでは。
感想
tDiary のキャッシュを memcached に載せると速くなるかもと期待したけど、そう甘くはないかも。