Smartyのcache

数万単位でキャッシュファイルがあり、テンプレートを指定しないグループ指定のキャッシュ削除を頻繁に行っている場合には、$smarty->use_sub_dirs=trueにするとパフォーマンスが劇的に変わる。
面倒でもキャッシュ削除の際には、テンプレートやグループを細かく指定していったほうがいいのかなー。

$smarty->clear_cache(null,"sports");

だと、readdirでキャッシュディレクトリ内のファイル名を全て読みに行ってしまう。

$smarty->clear_cache("foo.tpl","sports|basketball");
$smarty->clear_cache('index.tpl',"sports|tennis");

だと、ファイル名指定での削除になる。


また、

$smarty->clear_cache("foo.tpl","sports");

では、("foo.tpl","sports|basketball") は削除されない。



追記:グループ単位で頻繁に削除する場合には、一階層目のグループ名からしっかり分けていった方がいいっぽい。