Профайлер PHP своими руками

Я в курсе существования пары профайлеров PHP кода, которые позволяют находить «узкие» места. Но не всегда получается их установить и настроить. Поэтому приходится изобретать что-то на коленке.

Недавно пришлось искать причину жутких «тормозов» в одном сайте. Работать надо было на боевом сервере. В результате получился вот такой код:

$starttime = microtime(true);

function profileIt($str) {
	global $starttime;
	if ( isset($_COOKIE["profiler"]) && 
		$_COOKIE["profiler"] == "newman" ) {
		$endtime = microtime(true);
		$dt = $endtime - $starttime;
		echo "PROFILER:".$str.":".$dt."<br>\n";
		$starttime = microtime(true);
	}
}

Файл с этим кодом подключается в начале любого скрипта. Проверка куки нужна для того чтобы скрипт работал только для разработчика. Как поставить куку — каждый выбирает сам. Я например использую для этого расширение для FireFox.

Дальнейшее использование профайлера PHP легче легкого.

...
profileIt("Start work code");
... какой-то подозрительный код ...
profileIt("Stop code");
...

В результате работы скрипт выведет метку PROFILER:Stop code:<time> где <time> это время работы кода в секундах.
По сути же вызов функции profileIt выводит время прошедшее с момента ее предыдущего запуска, что впрочем понятно из кода этой самой функции 🙂

Запись опубликована в рубрике Полезности, Работа, Фриланс с метками , , . Добавьте в закладки постоянную ссылку.

Добавить комментарий