PEAR::BenchMark を使用すると、コードをテストする方法、コードが速いか遅いか、どの部分が遅いかを判断する方法がわかりました。そこで次に話したいのは、遅いコードのその部分を削除または最適化する方法についてです。
現時点での私の個人的な経験から言える主なポイントは 2 つだけです。1 つは、間違ったループや非効率なループを排除することです。もう 1 つは、データベース クエリ ステートメントを最適化することです。実際、「str_replace は ereg_replace より速い」、「echo は print より速い」など、他にも最適化の詳細がいくつかあります。これらについてはひとまず脇に置き、頻繁すぎる IO に対処するためのキャッシュの使用については後ほど説明します。
次に、同じ機能でプログラムの書き方が異なる 3 つの関数の効率 (消費時間) を比較します。
badloops.PHP
require_once('Benchmark/Iterate.php')
define('MAX_RUN',100); array(1, 2, 3, 4, 5);
doBenchmark('v1', $data);
doBenchmark('v3', $data); );
function doBenchmark($functionName = null, $arr = null)
{
リセット($arr);
$benchmark->run(MAX_RUN) , $functionName, $arr);
$result = $benchmark->get();
echo '
';
printf("%s は %d 回実行されました (平均実行時間 %)。 5f ms",
$functionName,$result['iterations'],$result['mean'] * 1000);
}
function v1($myArray = null) {
//非常に非効率なループ
for ($i =0; $i {
echo '