Документация к плагину "CodeSpeed" (секундомер времени выполнения кода)
Инструкция по настройке плагина
- Установите плагин
- Зайдите в настройки плагина («Магазин» --> «Плагины» ---> «"CodeSpeed" (секундомер времени выполнения кода)»)
- Включите плагин
-
В настройках плагина перечислите через запятую ID пользователей бекенда, которые будут иметь доступ к форме плагина на фронтенде при авторизации на сайте
- Через приложение "Команда" ID пользователя бекенда можно посмотреть здесь - https://yadi.sk/i/b5O-GD2sUxq1gA, а через приложение "Контакты" ID пользователя бекенда можно посмотреть здесь - https://yadi.sk/i/lQGaWunSHCm22g.
-
Подключите вывод формы плагина: в файле index.html темы дизайна выведите следующий код перед закрывающим тегом </body>:
{* CODE SPEED FORM OUTPUT *} {if $wa->shop}{if method_exists("shopCodespeedPlugin","codeSpeedOutput")}{shopCodespeedPlugin::codeSpeedOutput()}{/if}{/if} - Авторизуйтесь на сайте под учетной записью, ID которой указали в настройках плагина и убедитесь, что плагин вывел свою форму на любой странице фроентенда - https://yadi.sk/i/CX6dkPeKMs6vLQ.
- Установите бесплатный плагин HookSpeed (дополнение к плагину CodeSpeed)
- Зайдите в список плагинов для приложения "Магазин" («Магазин» --> «Плагины»), перетащите плагин «CodeSpeed» на первое место, а плагин «HookSpeed» на последнее место.
-
Очистите кеш в инсталлере
- Обязательно чистите кеш в инсталлере после каждого перемещения плагинов, иначе порядок плагина меняться не будет, т.к. это кешируется.
Инструкция по работе с плагином
Делаем первый тестовый замер времени выполнения участка кода в теме дизайна
- Плагин на своей форме выводит кнопки для создания кода, обращяющегося к методу плагина для замера времени выполнения кода. Нажмите кнопку для создания нового секундомера - https://yadi.sk/i/CNlhFS3tZ5kZTw
- Введите ID нового секундомера. Можно вводить латинницу, кириллицу, цифры и спецсимволы - https://yadi.sk/i/S9cFJS2Ztz8G3Q, только, пожалуйста, - не используйте первым символом знак нижнего подчеркивания. После того как введете ID секундомера - код для вставки в тему дизайна будет автоматически добавлен в ваш буфер обмена - https://yadi.sk/i/wFhuEHWsx9rk6A.
- Вставьте полученный код в теме дизайна дважды. Например, в файле index.html: первый раз - над открывающим тегом <head> - https://yadi.sk/i/NfBuS7tsZp2x7g, а второй раз - после закрывающего тега </head> - https://yadi.sk/i/8vfzCPZXMbKL-Q.
- Сохраните изменения в файле и откройте страницу сайта, на которой только что измененный файл темы дизайна работает (в случае с index.html - любую страницу сайта) и ознакомьтесь с полученным результатом - https://yadi.sk/i/amlqrZb7iPPT9g.
Функция автоматического создания и копирования в буфер обмена кода может работать некорректно на некоторых темах дизайна (в частности, не работает на теме дизайна Megashop 2.0). Вы можете использовать код вручную (подставьте вместо "test" нужный вам ID секундомера):
Код Smarty:
Код PHP:
Настраиваем дизайн формы плагина
Вы можете в любое время менять дизайн формы плагина прямо на форме плагина. Для этого:
- Нажмите на шестеренку в правом верхнем углу формы - https://yadi.sk/i/48fDMJ4TMPYSgg.
- Произведите настройки формы - https://yadi.sk/i/Y3fs-w5uBVEoJg на свой вкус и цвет.
- Сохраните изменения.
Также вы можете передвигать и сворачивать форму в любой момент. Все настройки отображения формы хрянятся в Cookies браузера, поэтому каждый пользователь вашего сайта сможет настроить дизайн формы "под себя".
Проверяем время выполнения каждого плагина по отдельности
На форме плагина «CodeSpeed» вы видите время выполнения кода всех плагинов, которые размещены в списке плагинов между этими двумя плагинами. Например, на данном скриншоте https://yadi.sk/i/nB6CHaSwgnszgg плагин замеряет время выполнения плагинов "Заказ обратного звонка", "Нормальная маска телефона" и еще 8-ми плагинов. А вот плагин "Нашли дешевле" в выборку уже не попадает, поскольку ращмещен ниже плагина «HookSpeed». Открываем страницу сайта и смотрим результаты: https://yadi.sk/i/e5AENRoi_t90TQ.
Если вы произвели настройку плагинов «CodeSpeed» и «HookSpeed» согласно инструкции (расположили плагин «CodeSpeed» на первом месте, а плагин «HookSpeed» - на последнем, то, соответственно, на странице сайта вы увидите время выполнения кода всех установленных плагинов: https://yadi.sk/i/ullvl93q6POcSg.
Теперь попробуем замерить какой-нибудь один плагин. Например, плагин "Нормальная маска телефона". Для этого вам необходимо:
- Зайти в раздел с плагинами: ("Магазин" --> "Плагины").
- Зажать левой клавишей мыши плагин «HookSpeed» и перетащить его наверх. (Лайфхак: если плагинов много и курсор мыши упёрся в верхнюю границу экрана, то вместо того чтобы тянуть мышь вверх можете в этот момент немного "поболтать" её влево-вправо. Тогда выделенный курсором элемент страницы будет перемещаться вверх. По-крайней мере, так работает в Google Chrome. Честно говоря, я не знаю, баг это или фича. Но это довольно удобно).
- Поменять местами оставшиеся плагины. Если необходимо замерить время выполнения кода плагина "Нормальная маска телефона", то он должен быть единтвенным плагином между «CodeSpeed» и «HookSpeed». Например, можно оставить так: https://yadi.sk/i/zBRuFuyxsjVgpw или так: https://yadi.sk/i/ZKexe3vRyByczg.
- Обязательно почистите кеш в инсталлере - https://yadi.sk/i/huVq9spZLbZtWg
- После чистки кеша открывайте страницу сайта и смотрите полученный результат: https://yadi.sk/i/hFcSeRPUUsLmYQ. Как можно заметить, цифры очень большие. Почему так? Потому что сразу после чистке кеша, первая загрузка страницы сайта происходит без кеширования движком. Это нормально.
- Обновите страницу еще один раз для получения правдивых результатов: https://yadi.sk/i/TptnujD37ggPFA. Теперь вы видите, что плагин "Нормальная маска телефона" выполнил свой код в хуке "frontend_footer" и сделал это за +-5 милисекунд (0.005 секунд).
Проверяем файл темы дизайна
Теперь попробуем проанализировать файл темы дизайна на скорость выполнения кода, а точнее - посмотрим как загружается шаблон с товарами. Как это делать:
- Создайте новый секундомер - https://yadi.sk/i/B_Hfnb9d2miB1A.
- Разместите стартовую позицию секундомера - https://yadi.sk/i/aT0R_iWi8uVfuA.
- Разместите конечную позицию секундомера - https://yadi.sk/i/7BsNo_RhpbPa9w.
- Ознакомьтесь с результатом: https://yadi.sk/i/5OvHLsjrv4WXcg
В моем случае блок со всеми товарами загрузился за 44 мс. Однако при допущении ошибок в теме дизайна это число может быть значительно выше (например, если в цикле на каждой итерации запрашивается вся коллекция с товарами, что является очень грубой ошибкой и оказывающей крайне негативное влияние на скорость загрузки сайта).
FAQ. Ответы на часто задаваемые вопросы
Скорость выполнения кода и скорость загрузки страницы это тоже самое?
Нет. Плагин замеряет только лишь скорость PHP выполнения кода. Например, если у вас имеется строчка, где вы подключаете JS файл, то на выполнение этого кода плагин потратит милисекунды. Но на стороне браузера этот JS код будет загружаться отдельно. И померить этот JS файл плагин "CodeSpeed" не сможет. Зато это сможет сделать консоль разработчика в браузере Google Chrome.
Стоит ли покупать плагин, если я в с трудом понимаю понимаю что такое "плагин", что такое "хук" и что такое "хелпер"?
Нет, в таком случае плагин вам не нужен. Он предназначен только для разработчиков и для опытных пользователей. Разработчикам плагин помогает находить и исправлять неоптимизированные участки кода, а опытным пользователям - плагин помогает контролировать свой сайт, чтобы "знать куда копать" в случае обнаружения проблем с загрузкой страниц.
Функция копирования кода секундомера в буфер обмена - не работает.
На некоторых темах дизайна копирование автоматически сгенерированного кода в буфер обмена не происходит. В частности, функция копирования не работает на теме "Megashop 2.0" (megashop2). В таких случаях копируйте код и подменяйте ID вручную. Код представлен в блоке "Инструкция по работе с плагином".
Обратите внимание, что мы не планируем заниматься исправлением данной ошибки, т.к. проблема частная и касается только одной темы дизайна.
Техническая поддержка
- Техническая поддержка осуществляется только через личный кабинет. Инструкция по созданию заявки здесь. Пожалуйста, не пишите на электронную почту и в мессенджеры.
- Техническая поддержка обычно осуществляется в рабочее время: Пн-Сб 08:00-17:00 (мск).
- Среднее время реакции на обращения: 2-3 часа
- Максимальное время реакции на обращения: 2-3 рабочих дня