或者怎么實現(xiàn)比較優(yōu)雅呢
fpm模式下 可以在 index.php起始位置加入開始時間,cli 模式下怎么處理呢?
中間件
// 開始計時
$start_time = microtime(true);
//獲取響應(yīng)
$response = $next($request);
//計算耗時
$finish_time = microtime(true);
$cost_time = ($finish_time - $start_time) * 1000;
return $response;
有試過每一個中間件都記錄開始時間嗎?如果有,打印出來看看是不是都一樣的。最后一個中間件的結(jié)束時間減去最后一個中間件記錄的開始時間,是準確的程序運行耗時嗎?
建議了解一下什么叫中間件的洋蔥模型,如果實在整不明白你干脆就關(guān)閉控制器復(fù)用,初始化控制器的時候算開始時間,響應(yīng)客戶端前算結(jié)束時間
http://www.wtbis.cn/doc/webman/middleware.html
至于什么時候算開始時間,根據(jù)個人需求記錄,沒有統(tǒng)一的標準,
有人可能需要在onMessage時就算開始時間
有人需要在第一個中間件算開始時間
有人可能覺得過了中間件,實際進入控制器才算開始時間
按照 @2548a 的回答做就行了,匹配路由部分很快,約為0.0000x秒,并且框架有緩存(耗時基本為0),匹配路由部分不需要計算到耗時里。至于你要不要統(tǒng)計其它中間件的耗時,像 @nitron 說的,取決決于你中間件配置順序,如果你在第一個中間件里統(tǒng)計耗時,那么其它中間件的耗時就包括在內(nèi),如果在最后一個中間件統(tǒng)計,就不包括。