При разработке WordPress 6.2 были внесены улучшения в работу основной команды разработчиков, что привело к постоянному сосредоточению внимания на производительности на каждом этапе разработки. Эти новые процессы обнаруживают проблемы во время внесения изменений, предотвращая их попадание в финальную версию.
Два улучшения, ответственные за это изменение:
- Новый спектакль ведет
- Автоматический бенчмаркинг
Эти два улучшения позволили команде WordPress сделать производительность частью разработки каждой части WordPress, по сути, добавив ее в свою ДНК разработки.
Содержание
Уроки, извлеченные из WordPress 6.1
Предыдущий выпуск WordPress, версия 6.1, был отмечен общим снижением производительности, которое WordPress называет регрессией производительности.
Регресс производительности — это когда улучшение приводит к снижению производительности.
Они обнаружили, что, несмотря на то, что они устранили самую большую единственную причину регресса производительности, а также внедрили несколько улучшений производительности, общая производительность сайта по-прежнему снижалась из-за изменений, которые ухудшали производительность.
WordPress объяснил урок, который они извлекли из выпуска версии 6.1:
«Несмотря на другие улучшения производительности, появившиеся в этих выпусках, регрессия фактически свела на нет улучшения».
…Чем больше регрессий, тем менее эффективны в целом любые другие улучшения производительности».
Ведущий специалист по разработке WordPress
Процесс разработки WordPress 6.2 был завершен при координации со стороны нового руководителя по производительности.
Менеджер по производительности не инициирует изменения и улучшения. Это была работа команды разработчиков.
Руководитель производительности просто координировал свои действия между командами.
Каждая из команд отвечает за результативность своих проектов.
Ведущий производитель объяснил, как это работает:
«Это позволило мне тесно сотрудничать и поддерживать других участников и координировать с ними наши подходы к измерению производительности.
…победы в производительности в этом выпуске являются результатом отличной работы нескольких участников по выявлению слабых мест в производительности.
Введение роли руководителя по производительности… просто улучшило представление о производительности наряду с другими членами команды по выпуску».
Автоматизированный сравнительный анализ WordPress
WordPress отметил, что снижение производительности происходило незаметно, потому что не каждое изменение можно было проверить вручную на предмет влияния на общий выпуск.
Чтобы устранить недостаток, заключающийся в невозможности вручную протестировать каждое отдельное изменение в ядре, WordPress представил автоматический бенчмаркинг производительности для всех изменений.
Автоматический сравнительный анализ производительности измеряет влияние каждого изменения, чтобы выявить скрытые узкие места в производительности, прежде чем они попадут в окончательные версии.
WordPress описывает это изменение рабочего процесса:
«Несколько участников сотрудничали над внедрением автоматизированного рабочего процесса CI для измерения производительности в ядро WordPress…
Благодаря этому рабочему процессу CI основные показатели производительности WordPress теперь записываются для каждого отдельного коммита и доступны на этой панели.
Это позволяет нам легко обнаружить потенциальную регрессию там, где раньше она осталась бы незамеченной».
Обновление WordPress 6.1 привело к снижению производительности в Gutenberg, проблемам, которые можно было бы обнаружить заранее с помощью автоматического тестирования.
Автоматические тесты производительности выполняются при каждой основной фиксации в GitHub, чтобы измерить, как WordPress работает с блочными и классическими темами.
Тестирование также собирает метрики синхронизации сервера с использованием последней версии PHP.
Подробнее об автоматизированном мониторинге производительности здесь: Автоматический мониторинг производительности в ядре WordPress.
Участники WordPress работали вместе
Участники WordPress работали над определением областей, которые требовали улучшения, с новым акцентом на производительность.
Профилирование производительности ядра WordPress на стороне сервера было выполнено с помощью инструментов с открытым исходным кодом Xdebug, XHProf и Blackfire (SaaS).
Сравнительный анализ ядра WordPress был менее простым, поскольку группы разработчиков использовали разные инструменты.
В настоящее время идет стандартизация инструментов, используемых для измерения производительности, поэтому все команды измеряют одно и то же с помощью одного и того же набора инструментов.
Факт: WordPress 6.2 работает лучше
Результатом автоматизированного бенчмаркинга производительности и координации производительности между командами разработчиков является существенное улучшение показателей производительности.
WordPress поделился:
«Исходя из лабораторных тестов, WordPress 6.2 загружается на 14-18% быстрее для блочных тем и на 2-5% быстрее для классических тем (измерено с помощью Largest Contentful Paint / LCP).
В частности, производительность на стороне сервера (измеряемая через время до первого байта / TTFB) значительно увеличилась на 17-23% для блочных тем и на 3-5% для классических тем, что напрямую влияет на общее время загрузки».
Тестирование производительности происходит не только на этапе основной фиксации, бенчмаркинг проводится для всех кандидатов на выпуск WordPress.
WordPress описывает этот процесс:
«На данный момент, в частности, рекомендуется использовать производственную ZIP-версию ядра WordPress (например, определенную бета-версию или выпуск RC) вместо измерения в среде разработки ядра WordPress.
Команда ‘benchmark-web-vitals’, упомянутая в предыдущем разделе, идеально подходит для этого варианта использования, поскольку она предоставляет высокоуровневые показатели производительности, которые фиксируют производительность как на стороне сервера, так и на стороне клиента.
Затем полученные данные можно сравнить с теми же показателями, например, из предыдущей стабильной версии, чтобы получить представление о том, как изменилась (надеюсь, улучшилась) производительность ядра WordPress в новой версии».
WordPress изменил производительность
В течение последних нескольких лет WordPress усердно работал над интеграцией улучшений производительности в рабочий процесс разработки.
Вначале команда по производительности вносила улучшения, такие как сокращение избыточного или ненужного JavaScript, который загружался для каждой страницы, и добавление таких вещей, как ленивая загрузка изображений.
Но теперь команда производительности интегрирует бенчмаркинг производительности прямо в фазу разработки каждого улучшенного компонента на уровне фиксации GitHub и использует автоматический бенчмаркинг производительности для масштабирования улучшений.
По сути, WordPress успешно добавил производительность в ДНК своего процесса разработки.
Это одно из наиболее важных изменений в разработке WordPress и признак того, что WordPress находится на пути к тому, чтобы догнать другие системы управления контентом.
Наконец, WordPress может вернуться в игру производительности.
Прочтите полное объявление WordPress, в котором содержится информация об их прогрессе и ссылки на инструменты, используемые для оценки производительности.
Преимущества расстановки приоритетов и измерения производительности в WordPress 6.2
Избранное изображение Shutterstock/Asier Romero