Главная > Заметки, Статьи > Время выполнения запросов, процедур

Время выполнения запросов, процедур

Все достаточно просто, как и в любых других измерителях времени выполнения. Первое — это ставим точку старта (запоминаем время), выполняем нужную операцию, ставим точку окончания — тоже время, делаем разность от большего к меньшему, и получаем время выполнения:

$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>';

Заметки, Статьи ,

  1. Комментариев пока нет.
  1. Трекбеков пока нет.