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

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

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

Очень часто при посещении сайтов мы видим цифры, которые показывают, сколько времени было времени затрачено системой управления на обработку кода страницы, сколько было затрачено времени на обращение к базе данных и сколько было произведено к ней запросов, и за сколько какое время была полностью сформирована страница. Эта информация с каждым годом становится для вебмастеров все важнее, так как все больше внимания уделяется оптимизации скорости работы сайта.

Возможно ли показывать информацию об используемых ресурсах на сайте под управлением Modx? Да возможно, и даже есть возможность показать количество памяти, затраченное процессом php на формирование страницы, но для этого придется внести небольшие изменения в исходный код CMS.

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

Итак, для отображения потребления ресурсов в шаблон сайта необходимо добавить следующие в шаблон сайта следующие теги:

[^q^] – количество запросов к базе данных.

[^qt^] – время на выполнение всех запросов из базы данных.

[^p^] – время на работу php скрипта.

[^t^] – общее время затраченное на генерацию страницы.

[^s^] – источник откуда был получен документ (database получен из базы данных, cache получен из кеша системы управления).

В моей практике я добавляю их закомментированными, чтобы можно было всегда посмотреть их в исходном коде страницы.

<!-- SQL: [^qt^] ([^q^]), PHP: [^p^], MEM: [^m^], ALL: [^t^] ([^s^]) -->

Наблюдательный читатель обратит внимание, что в моем вызове есть еще тег 8 192 kb, который не встречается в документации к Modx evolution. Для меня важно понимать все, что происходит с сайтом, поэтому на просторах Интернета было найдено решение, которое позволяет смотреть количество затраченной памяти. Для того, чтобы Modx отображал информацию об используемой памяти необходимо внести изменения в /manager/includes/document.parser.class.inc.php

Для текущей версии 1.0.8 в районе 544 строки после текста

$source= $this->documentGenerated == 1 ? "database" : "cache";
$queries= isset ($this->executedQueries) ? $this->executedQueries : 0;

$allmemory = (memory_get_peak_usage(true) / 1024 / 1024) . " mb";

а в районе строки 555 после текста

$out= str_replace("[^t^]", $totalTime, $out);
$out= str_replace("[^s^]", $source, $out);

$out= str_replace("[^m^]", $allmemory, $out);

После этого Modx Evolution начнет показывать, сколько максимально памяти было выделено в момент обработки скрипта. При обновлении Modx не забудь внести аналогичные изменения в document.parser.class.inc.php, чтобы данные о памяти продолжали отражаться.

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