Smartyの読み込みコスト(時間)を削減する

今日はいっぱいかいてるなぁ~小堤です。

さて、Smarty何気なく使っていますが、便利です。大変便利ですが、やつは読み込んだときに結構コスト食うのです。
時間にすると0.02位かな?たしか。 マシンによると思うけど。

これをすげー高速化したい。xFrameoworkPX2.5では高速化しました。
Smarty自体はいじくりません。いじっちゃだめだとおもうし(笑)

方法は、まず、キャッシュを作ります。
先に答えをいってしまうと、Smartyオブジェクトを作りserialzieした文字列をプログラム内に組み込む

です。

Smartyは内部でいくつもrequire_onceを行っているためコストがかかります。

なので、一度オブジェクト化して、serialzieして文字列にします。

そして、利用時にunserializeすることでオブジェクトに復元できます。

こうすることで、Smartyの複数のファイル読み込みのコストを削減できます。

しかし、ここで注意が必要です。

SMARTY_DIR

という定数が定義されていない場合、Smartyは自分のファイルのいる場所をSMARTY_DIRとして定義します。

なので、こいつを先に定義してやります。実際にSmartyがおいてあるディレクトリのパスを。

これでOKです。

これだけで、xFrameworkPX2.5においては0.01秒速くなりました。

すごいです・・・。

で、ちなみにうちの開発サーバ(Xeon 2.13GHz/Mem2G/SATA2 250GB) でeAccelerator使った場合、Smartyによる出力まで行って(アクションはまだ動いていない)0.004秒という驚くべき高速化ができました!!まぁほかにもいろいろ高速化した結果ですが。

アクション動かして0.025の目標に対して、まだまだ余裕がある!!!次のバージョン、すげーはやくなるかもですよ?

Smartyの読み込みコスト(時間)を削減する

One thought on “Smartyの読み込みコスト(時間)を削減する

コメントを残す