Laravelで処理速度とメモリ使用量をチェックするためのスニペット

計測用構文

すでに同様の内容に関して、たくさんの記事が書かれていますが、自分の備忘録のために残しておきます。

performance.php
$startTime = microtime(true);
$initialMemory = memory_get_usage();

// 何かの処理

$runningTime =  microtime(true) - $startTime;
$usedMemory = (memory_get_peak_usage() - $initialMemory) / (1024 * 1024);

dump('running time: ' . $runningTime . ' [s]'); // or var_dump()
dump('used memory: ' . $usedMemory . ' [MB]'); // or var_dump()

この構文を計測対象のメソッド処理に書き足す。

注意事項

計測対象にデバッグ用のdump処理など、画面への出力処理を加えている場合は計測時にコメントアウトしておきましょう。ファイルのI/Oを計測対象としている場合は別の話ですが、foreachなど純粋に処理時間のパフォーマンスを計測したい場合、計測対象に比べて入出力のコストが高いと上手く計測できているとは言えません。プロダクション用のコードまで削ぎ落とした状態で計測することをオススメします。

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.