Класс Ориентировки
CodeIgniter имеет Класс Ориентировки который всегда активен, обеспечивая подсчет временной разницы между любыми двумя промаркерованными точками.
Примечание
Этот класс инициализируется автоматически, поэтому нет нужды подключать его вручную.
Кроме того, ориентировка всегда стартует в момент вызова фреймворка и заканчивается классом вывода прямо перед отправкой данных в браузер, обеспечивая высокую точность подсчета времени исполнения работы системы.
Использование ориентировачного класса
Класс Ориентировки может быть использован внутри контроллеров, видов или моделей. Процесс использования:
- Маркер начальной точки
- Маркер конечной точки
- Запуск функции “истекшего времени” чтобы посмотреть результаты
Вот пример реального кода:
$this->benchmark->mark('code_start');
// Код скрипта
$this->benchmark->mark('code_end');
echo $this->benchmark->elapsed_time('code_start', 'code_end');
Примечание
Слова “code_start” и “code_end” произвольные. Это простейшие слова для использования маркеров. Вы можете использовать любые слова и можете задать несколько секций маркеров. Рассмотрим такой пример:
$this->benchmark->mark('dog');
// Код скрипта
$this->benchmark->mark('cat');
// Другой код скрипта
$this->benchmark->mark('bird');
echo $this->benchmark->elapsed_time('dog', 'cat');
echo $this->benchmark->elapsed_time('cat', 'bird');
echo $this->benchmark->elapsed_time('dog', 'bird');
Профилирование точек маркера
Если вы хотите, чтобы данные были доступны в Профилировании, все ваши маркеры (точки маркеров) должны быть заданы парами и каждое имя точки маркера должно заканчиваться на _start и _end. Каждая пара точек, должна иметь идентичное название. Например:
$this->benchmark->mark('my_mark_start');
// Код скрипта...
$this->benchmark->mark('my_mark_end');
$this->benchmark->mark('another_mark_start');
// Код скрипта...
$this->benchmark->mark('another_mark_end');
Пожалуйста, прочтите страницу профилирования для получения дополнительной информации.
Отображение общего времени выполнения
Если вы хотите отобразить общее затраченное время с момента старта CodeIgniter до момента финалного отображения данных в браузере, просто поместите это в один из ваших шаблонов видов:
<?php echo $this->benchmark->elapsed_time();?>
Вы заметите, что это та же функция, что и используемая в приведенных выше примерах для расчета времени между двумя точками, исключая использование любых параметров. Когда параметр отсутствует, CodeIgniter не останавливается до финального вывода данных в браузер. НЕ важно где вы вызвали функцию, таймер будет отсчитывать до самого конца.
An alternate way to show your elapsed time in your view files is to use this pseudo-variable, if you prefer not to use the pure PHP:
{elapsed_time}
Примечание
Если вы желаете маркировать в контроллере, то вы должны задать свои начальные/конечные точки.
Отображение потребления памяти
Если PHP установлен с настройкой –enable-memory-limit, вы можете отображать объем памяти потребляемой всей системой с помощью следующего кода в файле вида:
<?php echo $this->benchmark->memory_usage();?>
Примечание
Эта функция может быть использована только в файлах вида. Потребление будет отражать общий объем памяти используемой для всего приложения.
Альтернативный путь отображения использованной памяти в файлах вида - использование псевдо-переменной, если вы предпочитаете не использовать чистый PHP:
{memory_usage}
Справочник класса
- class CI_Benchmark
- mark($name)
Параметры: - $name (строка) – имя, которое вы хотите назначить для вашего маркера
Возвращаемый тип: пустота
Задает маркер.
- elapsed_time([$point1 = ''[, $point2 = ''[, $decimals = 4]]])
Параметры: - $point1 (строка) – отмеченная точка
- $point2 (строка) – отмеченная точка
- $decimals (число) – количество знаков после запятой для точности
Возвращает: прошедшее время
Возвращаемый тип: строка
Вычисляет и возвращает разницу во времени между двумя отмеченными точками.
Если первый параметр пуст, эта функция возвращает 0.1540 псевдо-переменную. Это позволяет отобразить полное время выполнения в шаблоне. Выходной класс меняет реальное значение для этой переменной.
- memory_usage()
Возвращает: информация об использованной памяти Возвращаемый тип: строка Просто возвращает 2.17MB маркер.
Это позволяет поставить его в любом месте шаблона без памяти рассчитанной до конца. Класс вывода поменяет реальное значение для этой переменной.