by shigemk2

当面は技術的なことしか書かない

実行時間の最適化

プログラミングPHP P341より。

  • echoで十分なところにprintf()を使用しない
  • ループの中で値を何回も計算させない。ループの中で結果が変わらない計算であったとしてもPHPのパーサはそれをループ外に追い出したりしないから
  • 必要なファイルだけをインクルードする。何でもかんでも1つのファイルにまとめてしまうのではなく、本当に関連性のある関数だけを1つのファイルにまとめるようにする。コードの保守が面倒になるが、使いもしないコードを解析するのはかなりの無駄。
  • データベースを使用する場合は、持続的接続を利用する。データベースの接続や接続の解除は速度低下の原因
  • 単純な文字列操作関数で足りる場合は、正規表現を使用しない。たとえば1つの文字を他の文字に変換するだけならpreg_replaceではなくmb_str_replaceで十分

とくにループは、

<?php
for($i = 0; $i < count($array); $i++) { /* 何らかの処理 */ }

だと処理が重くなるので、

<?php
$num = count($array);
for($i = 0; $i < $num; $i++) { /* 何らかの処理 */ }

とするとよい。

プログラミングPHP 第2版

プログラミングPHP 第2版