Удобный инструмент замера скорости выполнения участков PHP-кода

Посмотрите, понравится ли вам возможность замерить время выполнения различных частей кода вот таким простым способом:

<?php
class SomeClass
{
    function getData()
    {
 
        Profiler::init();
        Profiler::measure("Подключение к базе данных");
 
        $this->connect();
 
        Profiler::measure("Запрос количества элементов");
 
        $fullCount = $this->getCount($this->currentDbCriteria);
 
        Profiler::measure("Запрос первой страницы элементов");
 
        $firstPage = $this->getData($this->currentDbCriteria, 0);
 
        Profiler::measure();
        Profiler::print_measures();
    }
}

И вывод функции print_measures, выглядящий так:
print_measures

Для того, чтобы понять, что именно тормозит в вашем Php-скрипте, есть множество инструментов. Самый мощный из них – это Xdebug profiler, есть и модули попроще, например XHprof. Зачем же ещё один “удобный инструмент” ?

  • Если у вас нет возможности настроить XDebug
  • Если вам трудно разобраться в выдаче XDebug Profiler, даже с использованием KCacheGring и других утилит
  • Если вам нужно измерить время выполнения некоторого участка или участков кода
  • Если вам хотелось бы самостоятельно определить точки, в которых будут проводиться замеры быстродействия

во всех этих случаях, мой инструмент Profiler как раз и подойдёт.

Взять его можно в репозитории: https://github.com/MihanEntalpo/php_helpers, в папке profiler.

Для работы достаточно подключить файл Profiler.php.

Работа состоит из 3-х стадий:
1) Инициализация:

Profiler::init();

2) Начало следующего и окончание предудщего интервала замера:

Profiler::measure("Выполняем действие");

если вы собираетесь поставить точку, и больше не делать замеров, можно вызывать measure без параметров.
3) Вывести результаты измерений:

Profiler::print_measures()

Если скрипт запускается не в браузере а в консоли, то можно для отображения в консоли можно вызвать:

Profiler::print_measures(true);

So, what do you think ?