【php】簡易ストップウォッチ
スタートしてからストップするまでの時間間隔を測ります。
テストや実験、デバッグのときに使うつもりのものなので、安直にvar_dump()してます。
戻り値で返したり、ファイルに書き出すなどすれば、画面には出さずに計測できます。
class stopwatch
{
var $t;
var $m;
function __construct() {$this->t = time();}
function start() {$this->m = microtime(true) - $this->t;}
function stop() {var_dump(microtime(true) - $this->t - $this->m);}
}
time() を引き算しているのは、microtime(true)で、タイムスタンプ(大きな整数)+マイクロ秒(小さな小数)の情報落ちが発生するから。
var_dump(microtime(1)); // float(1260411005.05) ← 精度ガタ落ち var_dump(microtime(1) - time()); // float(0.0497739315033) ← このぐらい細かく知りたい
では、使ってみる。
$sw = new stopwatch;
$sw->start();
ob_start();
for ($i = 0; $i < 1000000; $i++) {
print 'echoとprintどっちが高速?';
}
ob_end_clean();
$sw->stop(); // float(1.50347900391)
$sw->start();
ob_start();
for ($i = 0; $i < 1000000; $i++) {
echo 'echoとprintどっちが高速?';
}
ob_end_clean();
$sw->stop(); // float(1.37894105911)
【php】echoとprint どっちが高速? at softelメモ 2009年12月11日 01:56
[...] (ある環境で、昨日やってみたとおり。参照 → 【php】簡易ストップウォッチ) [...]