Время выполнения запросов, процедур
16 Апр 2009
Все достаточно просто, как и в любых других измерителях времени выполнения. Первое — это ставим точку старта (запоминаем время), выполняем нужную операцию, ставим точку окончания — тоже время, делаем разность от большего к меньшему, и получаем время выполнения:
$st = array_sum(explode(' ',microtime())); ... ЗАПРОС, ПРОЦЕДУРА, ДОЛГАЯ ОБРАБОТКА ... $et = array_sum(explode(' ',microtime())); echo 'Время выполнения: '.($et - $st);
Есть вариант более мощный, например вам надо составить таблицу скорости выполнения кода состоящую из нужных элементов, т.е. например на сайте у вас выводятся несколько блоков данных, скорость которых вы хотите измерить и вывести результат в виде таблицы:
$start = array_sum(explode(' ',microtime())); $debug = array(); $debug[$start] = 'start'; ... какая то операция 1 ... $debug[array_sum(explode(' ',microtime()))] = 'Какая то операция №1'; ... какая то операция 2 ... $debug[array_sum(explode(' ',microtime()))] = 'Какая то операция №2'; ... какая то операция N ... $debug[array_sum(explode(' ',microtime()))] = 'Какая то операция N';
Вывод делается просто:
echo ' <table> <tr> <td>Название</tD> <td>Полное время от начала:</tD> <td>Время выполнения</tD> </tr> '; $last_time = $start; foreach($debug as $time => $name) { if ($name == 'start') continue; echo ' <tr> <td>'.$name.'</tD> <td> '.($time - $start).'</tD> <td>'.($time - $last_time).'</tD> </tR> '; $last_time = $time; } echo '</table>';
Последние комментарии