Я думав, що поділюсь функцією, яку я зібрав разом. Сподіваємось, це може заощадити ваш час.
Спочатку він використовувався для відстеження термінів текстового сценарію, тому висновок знаходиться у текстовій формі. Але ви можете легко змінити його в HTML, якщо хочете.
Він зробить усі розрахунки за те, скільки часу було витрачено з моменту запуску сценарію та на кожному кроці. Він форматує весь результат з 3 десятичними знаками точності. (До мілісекунд.)
Після того, як ви скопіюєте його у верхній частині вашого сценарію, все, що вам потрібно зробити - це поставити функцію recordTime дзвінки після кожного фрагменту, який ви хочете вчасно.
Скопіюйте це у верхню частину файлу сценарію:
$tRecordStart = microtime(true);
header("Content-Type: text/plain");
recordTime("Start");
function recordTime ($sName) {
global $tRecordStart;
static $tStartQ;
$tS = microtime(true);
$tElapsedSecs = $tS - $tRecordStart;
$tElapsedSecsQ = $tS - $tStartQ;
$sElapsedSecs = str_pad(number_format($tElapsedSecs, 3), 10, " ", STR_PAD_LEFT);
$sElapsedSecsQ = number_format($tElapsedSecsQ, 3);
echo "//".$sElapsedSecs." - ".$sName;
if (!empty($tStartQ)) echo " In ".$sElapsedSecsQ."s";
echo "\n";
$tStartQ = $tS;
}
Для відстеження часу, який проходить, просто виконайте:
recordTime("What We Just Did")
Наприклад:
recordTime("Something Else")
//Do really long operation.
recordTime("Really Long Operation")
//Do a short operation.
recordTime("A Short Operation")
//In a while loop.
for ($i = 0; $i < 300; $i ++) {
recordTime("Loop Cycle ".$i)
}
Дає вихід таким чином:
// 0.000 - Start
// 0.001 - Something Else In 0.001s
// 10.779 - Really Long Operation In 10.778s
// 11.986 - A Short Operation In 1.207s
// 11.987 - Loop Cycle 0 In 0.001s
// 11.987 - Loop Cycle 1 In 0.000s
...
// 12.007 - Loop Cycle 299 In 0.000s
Сподіваюся, це комусь допоможе!