PHPの書き方を変えて高速化を目指してみる。hoge ここを参考にして実際にテストしてみる。 for文に関数を使わないほうが早い。 †for ($j=0; $j<$count; $j++){}
for ($j=0; $j<count($array); $j++){}
for文に関数を使わないほうが早い。 is_null > '===' らしいけど・・・ †===
is_null
うーん、これもis_null > '===' らしいんだけど、私の実験だとis_null < '==='だなぁ。 '==' < '===' らしい †==
===
うーん、サイトだと == < === だと書いてあるけど、== > ===だな。 一応サイトを読んでみると、 '=='は型を考慮しないので、違う型を比較することを考えた凝った構造 '==='は同じ型かど最初にチェックして同じ型の値同士比較を行う構造 なので、'==='が早いらしい。うーむ。 strtr とstr_replaceは変換する文字量による。preg_replaceは明らかに遅い †以下のコードをこれにしてみる。 $a = strtr('abcdefjhijklmn', 'abc', 'ABC');
$a = str_replace('abc', 'ABC', 'abcdefjhijklmn');
$a = preg_replace('/abc/', 'ABC', 'abcdefjhijklmn');
preg_replaceは明らかに遅い。 速度 : echo > print †<?php ob_start(); $t = microtime(true); while($i < 1000){ print ''; // or echo ''; ++$i; } $tmp = microtime(true) - $t; ob_end_clean(); var_dump($tmp); ?> 結果:
時々printの方が早い結果が出たりするけど、ほとんどの場合echoの方がはやそう @ は遅い †上記をprint -> @printにして処理してみる。
確かに遅い。 echo 'a', 'b';のコンマの方が早い †上記ファイルのechoを
コンマの方が早いみたいです。 |