【php】part29【php】
■ このスレッドは過去ログ倉庫に格納されています
0548nobodyさん
2005/09/28(水) 07:16:13ID:???気になって色々測定してみたら、総じてシングルクォートよりダブルクォートの方が早いことがわかった。
まずシングルクォートには謎のオーバーヘッドがあるらしく、
for ($i = 0; $i < 1000000; $i ++) '';
for ($i = 0; $i < 1000000; $i ++) "";
を比べると、だいたい2.46秒vs2.44秒でダブルクォートのほうが0.02秒ほど早い。
(ってことは一個につき20ナノ秒しか変わらんわけだが・・・)
それから
'aaaaaa ... aaaaaa'
"aaaaaa ... aaaaaa"
って感じでaを1000000個並べてみたけど、8.03秒vs8.02秒でやっぱりダブルクォートの方が早い。
自分は今まで、変数の展開も改行もタブも含まない場合には意識的にシングルクォートを使うようにしていたが、実はそれは無意味であることがわかった。
たぶんシングルクォートによる文字列リテラルの表記の利点は、「$」および「"」をエスケープせずに使える、という点以外には全くないのではないだろうか。
$_SERVER['REMOTE_ADDR']とかさ、$_SERVER["REMOTE_ADDR"]でいいじゃん。
echo 'Hello, World'まで書いてみたら、「あ、やっぱ改行入れようかな」、なんてダブルクォートに直すのとか馬鹿みたいじゃないか。
とにかく測定には誤差がかなりあるので「ダブルクォートのほうが早い」という言い方は不適切かもしれない。
それでも、変にシングルクォートとダブルクォートを使い分ける悪習慣は治して、なるべくダブルクォートに統一するほうが効率や読みやすさも向上するだろうなぁと思った。
おしまい。
■ このスレッドは過去ログ倉庫に格納されています