【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】簡易ストップウォッチ) […]