smartyでもキャッシュファイルの数が多くなったら、ディレクトリをサブディレクトリにして速度を改善できる

前のエントリ phpのセッションファイルが多すぎる時に保存ディレクトリにサブディレクトリを作る で書いたことが、smartyのキャッシュファイルにも言える。
ページが2000~3000、PC/モバイルで別となると5000ファイルを超える。

【smarty マニュアル】Smarty クラス変数:$use_sub_dirs

$use_sub_dirs を TRUE に設定すると、 Smarty は テンプレートディレクトリ と キャッシュディレクトリ の下にサブディレクトリを作ります。デフォルトは FALSE です。 何万ものファイルが生成される可能性のある環境では、 ファイルシステムの速度低下を抑える助けになります。 一方、環境次第では、ディレクトリを生成するためのPHPプロセスが許容されない事があるので、 その場合はこの変数を無効にしなければなりません。デフォルトは無効になっています。

サブディレクトリは効率がよいので、可能なら使用するとよいでしょう。 理論的には、10のディレクトリがそれぞれ100のファイルを持っているほうが、1つのディレクトリに1000 のファイルを持っている場合よりも良いパフォーマンスを得られます。 少なくとも Solaris 7 (UFS) の場合には確実にそうでした……。 ext3 や reiserfs などの最近のファイルシステムでも、そんなに違いはないでしょう。