ダブルクオート/シングルクオート/ヒアドキュメント、echo/printの速度比較

文字列を定義するとき、シングルクオート、ダブルクオート、ヒアドキュメントの順で時間がかかり、またechoよりprintのほうが速いといわれているので、本当にそうなのかテストしました。

結果

所要時間メモリ
echo ダブルクオート5.8807秒106216B
echo シングルクオート6.1699秒106216B
echo ヒアドキュメント8.3751秒106432B
print ダブルクオート5.8829秒106328B
print シングルクオート5.9157秒106328B
print ヒアドキュメント8.4665秒106552B

何度か実行して、平均を取った結果です。メモリはコードが同じなら何度実行しても同じ結果でした。

シングルクオートよりもダブルクオートのほうが速い、、 そうはいってもほぼ同じです。
この2つに比べると、ヒアドキュメントは明らかに遅いです。

echoよりprintのほうが多少ですが時間がかかるようです。

速度のテストを同じようにやっているサイトがありましたが、 1つのコードの中ですべてをやっている場合にはやはり始めにやってる処理のほうが速いです。
今回のテストはそれぞれ別のコードを用意して実行しています。

テストコード

<?php

if (!function_exists('getMicrotime')) {
  function getMicrotime() {
    list($usec, $sec) = explode(' ', microtime());
    return ((float)$usec + (float)$sec);
  }
}


$s=getMicrotime();

ob_start();
for($i=0;$i<10000000;$i++){
  // ここにそれぞれのコードを書きます
ob_clean();
}

$e=getMicrotime();

echo ($e-$s);
echo "<br />";

echo memory_get_peak_usage();
echo "B";

echo ダブルクオート

echo "これはテストのテキストですよ、ちょっと長めにしてみるよ。";

echo シングルクオート

echo 'これはテストのテキストですよ、ちょっと長めにしてみるよ。';

echo ヒアドキュメント

echo <<< EOL
これはテストのテキストですよ、ちょっと長めにしてみるよ。
EOL;

print ダブルクオート

print "これはテストのテキストですよ、ちょっと長めにしてみるよ。";

print シングルクオート

print 'これはテストのテキストですよ、ちょっと長めにしてみるよ。';

print ヒアドキュメント

print <<< EOL
これはテストのテキストですよ、ちょっと長めにしてみるよ。
EOL;

関連記事

スポンサーリンク

svnコマンドのまとめ

ホームページ製作・web系アプリ系の製作案件募集中です。

上に戻る