
Все уже знают параметры для страницы:
show_page_exec_time=Y
- Выводит общее время исполнения страницы
show_include_exec_time=Y
- выводит время исполнения каждой из компонент. В новой версии ядра еще выводится время формирования меню.
Появился еще один интересный параметр:
show_sql_stat=Y
Этот параметр работает в корреляции с вышеперечисленными параметрами и выводит число SQL запросов, общее время исполнения SQL запросов и позволяет проанализировать сами запросы, как на всю страницу, так и на отдельно взятый компонент или меню.
Пример:
На этом рисунке представлена статистика SQL запросов для компоненты новостей на нашей главной странице. Выводится она 2 запросами. Общее время работы компоненты составляет 0.067 с. Время SQL запросов 0.0211 с или 31.49% от времени работы компоненты (%помогает выявлять ресурсоемкий PHP код или тяжелые запросы). Возле каждого запроса указывается, сколько раз аналогичные запросы повторялись с вариацией параметров. В статистике перечисляется, откуда вызван запрос и с какими параметрами.
Следующий пример со страницы блога. Запросов уже 5 штук. Но они потребляют меньше 7% от времени компоненты, которое составляет 0.0206 с. Важно, что само по себе число запросов не играет решающей роли, важнее время выполнения запросов.
Практика использования инструментария позволит:
* быстро выявлять больные участки сайта
* находить ошибки программирования, в которых компонент генерирует очень много запросов или мало, но медленных запросов (поддержкой были выявлены случаи, когда модифицированный партнером компонент вместо 3 наших запросов генерировал больше 4 тысяч и убивал сервер наповал)
* выявлять особенности и недостатки конфигурации SQL сервера или отдельных таблиц (бывали случаи, когда обычный запрос на отдельном проекте работаел в сотни раз медленнее. Причина был в MySQL и лечилось все оптимизацией проблемной таблицы)
* помочь партнерам указать нам на неоптимальные компоненты или проблемные участки, чтобы переработать их и улучшить производительность (чего греха таить, ряд компонент уже переписаны нами для нового дистрибутива, а некоторые находятся в работе)
Мы планируем и дальше развивать инструментарий отладки. Уже есть понимание, в каком направлении и как это лучше представить отладку в интерфейсе панелей, чтобы не вводить параметры руками.
1. (0.0023 с.) connect
2. (0.0004 с.) SET NAMES cp1251
3. (0.0005 с.) SELECT * FROM ...