2 марта прошёл митап латвийской WordPress группы, темой которого стало профилирование сайтов на WordPress (Profiling WordPress Sites). В ходе доклада были освещены вопросы профилирования тяжёлых WordPress сайтов. Наш докладчик (@kagg-design) провёл анализ применимости плагина Query Monitor и профилировщиков, включая Blackfire. Приведены реальные примеры оптимизации сайтов, включая как оптимизацию числа запросов к базе, так и оптимизацию использования процессорного времени. Материалы митапа доступны для скачивания по ссылкам ниже.
Первый рассмотренный пример был основан на примере сайта, где возникало 3,700 запросов в базу при использовании плагинов WooCommerce, WOOF, WOOF by Category. Даны пояснения, как была проведена оптимизация плагина WOOF с использованием transients.
Второй пример показал ошибку разработчика, где вследствие невнимательности была оставлена строка, производившая 3,200 запросов в базу. Результат выполнения этой строки более нигде не использовался. Сделаны выводы о произошедшем и показано, что скорее всего, проблема возникла из-за использования устаревших средств разработки вроде Notepad++. Используйте современные IDE, например, PhpStorm или VSCode, и вам удастся избежать многих тяжёлых ошибок!
Третий пример показал оптимизацию чисто по процессорному времени. Такой анализ доступен только с использованием специальных средств профилирования типа Blackfire. Оптимизация уменьшила использование процессора в 330 раз (с 2 мин 40 сек до 0.44 сек).
В заключение сделаны выводы о применимости плагина Query Monitor и профилировщика Blackfire и даны рекомендации по их использованию.
Profiling WordPress Sites как первый митап серии
Митап Profiling WordPress Sites носил технический характер и был рассчитан на продвинутых разработчиков. Тем не менее, он вызвал значительный интерес — зарегистрировалось 77 участников. Мы планируем провести серию митапов такого плана в латвийской митап-группе WordPress. Примерный план на настощий момент выглядит так.
- Debugging in WordPress (debug.log, xDebug)
- Testing code with PHPUnit
- Object caching practices
- Best-practices with 3rd-party APIs, including security
- Background processes, usage and debugging
- Profiling and subsequent optimization in examples
- Mutation testing
- Gutenberg by a developer’s eyes — the creation of blocks, debugging
- Backward compatibility in WordPress
- WPCS and PhpStorm settings
Митапы этой серии будут проводиться на русском. В комментариях к данной записи мы предлагаем обсудить содержание и последовательность митапов. Любые замечания и предложения приветствуются.
Скачать презентацию можно здесь. Запись митапа доступна ниже
Источник: KAGG