PHPベンチマーク結果まとめサイト「The PHP Benchmark」を見てスピードアップさせたい・・・

投稿者:isc_blog

PHP のベンチマークテスト結果ないかな~と思って検索していたところ
いつも愛読しているPHP SPOT開発日誌さんの過去記事を発見しました。
PHPベンチマーク結果まとめサイト「The PHP Benchmark」

こちらの記事で紹介されているサイトがこちら↓↓
The PHP Benchmark

なかなかやるせない(?)情報がいっぱいだった・・・・

たとえばこちら↓

以下 The PHP Benchmarkより引用
[php]
<?php

// Initial Configuration
$answer = 2;

// Test Source
function Test10_4() {
global $answer;

/* The Test */
$t = microtime(true);
while($i < 1000) {

if($answer === 1) {

} else if($answer === 3) {

} else {

}

++$i;
}

return (microtime(true) – $t);
}

// Variable Clean-up
function Test10_End() {
global $answer;
unset($answer);
}

?>
[/php]
というコードと
[php]
<?php

// Initial Configuration
$answer = 2;

// Test Source
function Test10_6() {
global $answer;

/* The Test */
$t = microtime(true);
while($i < 1000) {

switch($answer) {

case 1:

break;

case 3:

break;

default:

break;
}

++$i;
}

return (microtime(true) – $t);
}

// Variable Clean-up
function Test10_End() {
global $answer;
unset($answer);
}

?>
[/php]
というコード。

どちらも同様の計算が行われるはず・・・
ところが前者が

95μs(マイクロ秒)に対し

後者は

135μs(マイクロ秒)になる。
前者を100%とすると後者は142%。
アプリケーション全体で後者の記述をしていれば前者に直すと142%加速する(・・・わけないか)

こんな感じでいろいろ比較があって見れば見るほど過去を反省・・・もといこれから直していこうと思っちゃいます。

※PHPの比較演算子について
「===」は型も含めて同じである場合にTRUEとなります。(PHP4以降)
詳しくはこちら(PHP:比較演算子)

2011年8月28日