Блог/Вывод информации

Вывод времени выполнения, количества обращений и расхода ресурсов в MODX Revolution

Автор: Кудашев Сергей

В прошлом году мы рассматривали вопрос вывода системной информации о работе Modx Evolution. Помимо стандартных времени выполнения, количестве обращении и времени на обращения к базе данных, общего времени генерации страницы мною было еще добавлено количество памяти выделяемое для выполнения скрипта.  Наконец дошли руки и до MODX Revolution.

В MODX Revolution так же присутствуют теги для отображения интересующей нас информации. Стоит отметить, что в отличие от большинства тегов, формат которых поменялся с переходом от Evolution к Revolution, формат данных тэгов не поменялся. Поэтому мы воспользуемся старыми тегами, за информацией по тегам можно обратиться к старой статье.

Что же касается отображения количества памяти, выделяемой процессу, то нам снова необходимо вносить изменения в код. Лично мне данная информация интересна, поэтому приведу пример того, что и как надо изменить.

В отличие от Evolution, в Revolution полностью переработана модель дерева папок и файлов. Основные системные файлы теперь находятся в папке /core. Теги производительности теперь расположены в файле /core/model/modx/modresponse.class.php.

Для текущей версии 2.3.2 в данном файле в районе 112 строки добавляем:

$phpTime= $totalTime - $queryTime;
$phpTime= sprintf("%2.4f s", $phpTime);
$phpMemory= round(memory_get_peak_usage(true)/1048576,2) . " MB";

, а в районе 118 строки добавляем:

$this->modx->resource->_output= str_replace("[^t^]", $totalTime, $this->modx->resource->_output);
$this->modx->resource->_output= str_replace("[^m^]", $phpMemory, $this->modx->resource->_output);

Все, после внесенных изменений в случае указания тега [^m^] в шаблоне мы будем получать максимальное количество выделенной процессу памяти в момент выполнения скрипта. Данная информация не является абсолютно точной, впрочем как и информация из остальных тегов производительности, но какое-то представление о выделении памяти все таки дает.

И не забываем вносить данные изменения после каждого обновления системы.

UPDATE: для упрощения процесса выложил патч файл.

Комментарии (0)