at posts/single.html

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で1ファイルにデータを詰め込むとスケールしない。
  • PStoreで1ファイル1データとするとスケールする。
  • PStoreとMemcachedの時間は同じくらい。
    • PStoreは、おそらくディスクのキャッシュが効いているから。ディスクIOが発生すると遅くなるのでは。

感想

tDiary のキャッシュを memcached に載せると速くなるかもと期待したけど、そう甘くはないかも。

関連する日記