Посмотрите, понравится ли вам возможность замерить время выполнения различных частей кода вот таким простым способом:
<?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, выглядящий так:
Для того, чтобы понять, что именно тормозит в вашем 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); |
Оставить комментарий