2006年01月12日

[早起き生活]PHPのパフォーマンスチューニング

 年明けからじわじわとPVが上がり、それにつれてサーバーのロードアベレージも上がってきました。

 最初はDBまわり、もしくはファイル処理まわりがボトルネックになっているのかと思ったのですが、調べてみると自作のテンプレートエンジンが足を引っ張っていることが判明しました。いや、いちおうSmartyとかよりは軽いんですけどね。

 とはいえ、さらに重くなってサーバーを増強しなくちゃいけない事態になるのも面倒なので、先手を打ってテンプレートエンジンのパフォーマンスチューニングを行なっておくことにしました。

 PHPの文字列処理のパフォーマンスは、だいたい次のようなポイントを押さえれば、それなりに改善することができます。

・ereg系の関数は使わない。代わりにpreg系の関数を使う
・可能ならstr_replace()、strstr()といったより単純な関数を使う
・さらに可能ならstrpos()で代用する

 今回はこれで30%くらい、スクリプト全体では20%くらいのパフォーマンスアップを実現できました。

 テンプレート処理のパフォーマンスチューニング方法には、ほかにもキャッシングとかいろいろな手法があります。サーバーの負荷を見ながら順次こういった手法を取り入れていけばまだしばらくは大丈夫そうですが、どこかで急激にアクセスが増えたりすると追いつかなくなるかも?という気もしないでもありません。

 まぁ、その前に回線がダメになるでしょうけど。

posted by momose at 02:18 | Comment(0) | TrackBack(1) | 技術TIPS/まとめ | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.seesaa.jp/tb/11598132

この記事へのトラックバック

デバッグ
Excerpt: 「デバッグなんて、エラーがでなければいいや」くらいの気持ちでプログラムしていると失敗することを、あらためて実感した。小規模なウェブ...
Weblog: May the force be with you...
Tracked: 2008-05-24 10:38