カテゴリ
最新の記事
以前の記事
検索
その他のジャンル
ファン
記事ランキング
ブログジャンル
画像一覧
|
Smarty のコンパイルファイル、キャッシュファイルを tmpfs に置くと早くなるのか実験です。
先に結論。多少は早くなるようです。 大した手間ではないので、出力先を tmpfs にしておいても良いかもしれません。 同じスクリプトに10回アクセスし、平均実行時間を計測しました。 計測に使用したのは ここ で導入した Xdebug + Wingrind です。 ・環境 CentOS release 5.5 (Final) PHP 5.3.3 (cli) (built: Jul 22 2010 16:41:20) Smarty-3.0rc3 ※eAccelerator などのオプティマイザは無効 ・保存先ディレクトリ作成 (tmpfs) # cd / # mkdir php_tmp # mount tmpfs /php_tmp -t tmpfs # mount ... tmpfs on /php_tmp type tmpfs (rw) # cd php_tmp # mkdir temporary # cd temporary # mkdir cache # mkdir compile # cd ../ # chown -R apache:apache temporary ・実験(1) キャッシュしない場合 ここ で作ったスクリプトで実験します。キャッシュしないのでコンパイルファイルのみが保存されます。 A : ext3 が保存先の場合 48.1 msec B : tmpfsが保存先の場合 43.9 msec ・実験(2) キャッシュする場合 (1) と同じスクリプトで実験します。 A : ext3 が保存先の場合 55.6 msec B : tmpfsが保存先の場合 47.6 msec ・まとめ キャッシュしない場合、する場合のいずれも tmpfs を使用した方が (多少ですが) 早いことがわかりました。 キャッシュした方が時間がかかっていますが、これは単純に Smarty ライブラリ内部で呼び出される関数の数が多いからです。(今回のスクリプトの場合、キャッシュ時は 70個、非キャッシュ時は 61個) ん? ということは assign 時のコストが低いスクリプト (DBを見ないとか) の場合、キャッシュした方が遅い場合もあるのでしょうか・・・要検討です。
by hoge001
| 2010-10-03 14:46
| PHP
|
ファン申請 |
||