PHPで処理時間の計測
2014/09/03
一連の流れで各処理にかかる時間を調べたい。
実行すると妙に時間がかかるので、原因を調べたかった。
「microtime()」っていう関数を使えばいいらしいんだが・・・何か使い勝手が悪い。
※諸々勘違いしてたってのもあるんだけどね。
やりたいというより知りたいことは、「各処理の実行時間」。
毎回、echo等で出力するってのもいいんだけど、出力時の文言やフォーマットで何度もいじるのが面倒。
ということで、計測時間を配列に追加していき最後にvar_dump()でまるっと吐出せばいいんじゃないのってことで関数にしてみた。
function getProcessTime($timeBefore=0, $subTitle=’通過’) {
if ($timeBefore != 0) {
$time = microtime(true) – $timeBefore;
}
else {
$time = 0;
}
$timeObj = array( ‘us’ => $time,
‘view’ => floor($time),
‘title’ => $subTitle,
‘before’ => microtime(true),
);
return $timeObj;
}
if ($timeBefore != 0) {
$time = microtime(true) – $timeBefore;
}
else {
$time = 0;
}
$timeObj = array( ‘us’ => $time,
‘view’ => floor($time),
‘title’ => $subTitle,
‘before’ => microtime(true),
);
return $timeObj;
}
処理後に「getProcessTime()」を実行する。
引数の
・「$timeBefore=0」ってのは、実行前の時間(マイクロタイム秒)
・「$subTitle=’通過’」ってのは、出力用のラベル代わり
戻値の「$timeObj」には4つ値を持たせておく。
・「キー:us」は差分のマイクロタイム秒(小数になる場合もあり)
・「キー:view」は差分のマイクロタイム秒の整数部のみ。
・「キー:title」は出力用のラベル
・「キー:before」は次回使う「$timeBefore」に相当する。
使い方などはwikiでまとめ中
PHP 処理にかかる時間が知りたい(microtime)