ダブルクオーテーションは遅い?PHPの文字列リテラル

PHPの文字列リテラルには4種類の定義方法があります。

文字列リテラルは、4 つの異なる方法で指定することが可能です。

引用元: PHP: 文字列

比較的短い文字列リテラルには、引用符、もしくは、二重引用符を使うのですが、どちらを使ったほうが速いのか気になったので、検証してみました。10文字の文字列定数を、シングルクオーテーションまたはダブルクオーテーションで定義する操作を100万回実行し、実行時間を計測しました。その結果、ダブルクオーテーションを使うと、シングルクオーテーションを使った場合と比べ、平均で2.97%余分に時間がかかるという結果になりました。どれぐらい差がつくかは実行環境やプログラムに依存しますが、シングルクオーテーションを使ったほうがダブルクオーテーションを使った場合より、実行速度が向上するというのは間違いなさそうです。

検証に使ったプログラム

<?
for($j = 0 ; $j < 20 ; $j++){
$time = microtime(true);
for($i = 0 ; $i < 1000 * 1000 ; $i++){
$str = ‘0123456789’;
}
echo microtime(true) – $time;
echo ‘<br>’;
}
echo ‘<br>’;
for($j = 0 ; $j < 20 ; $j++){
$time = microtime(true);
for($i = 0 ; $i < 1000 * 1000 ; $i++){
$str = “0123456789”;
}
echo microtime(true) – $time;
echo ‘<br>’;
}
echo ‘<br>’;

実行結果

0.41139507293701
0.41649985313416
0.40994691848755
0.410001039505
0.41058301925659
0.40984010696411
0.40938115119934
0.409255027771
0.40907311439514
0.40949606895447
0.40971398353577
0.40964508056641
0.40959501266479
0.40952682495117
0.41003894805908
0.40985417366028
0.41009998321533
0.40972805023193
0.40949606895447
0.40978693962097

0.42220020294189
0.42161011695862
0.42169308662415
0.42109489440918
0.4217050075531
0.42155003547668
0.42145800590515
0.42229604721069
0.42049098014832
0.42160201072693
0.42232203483582
0.42337918281555
0.42352104187012
0.42338705062866
0.42360186576843
0.42351698875427
0.42375993728638
0.42368698120117
0.42230105400085
0.42197299003601


Facebookページもよろしくお願いします

CATEGORIES 北海道ラボby.yasu.tanaka5 Comments2010.08.23
TAGS , , ,  
記事の投稿者
田中 康英
eラーニング支援部です。ときにメールマガジンを書き、ときにブログを書き、ときにソフトを翻訳し、ときに問い合わせに返信し、ときにUstreamスタジオの準備をし、とそんな感じでお仕事しています。

Facebook comments:

コメントをどうぞ

Eメールアドレスは公開されません。

Trackback URL

管理者の承認後に表示します。無関係な内容や、リンクだけで意見や感想のないものは承認しません。