@EvgenyMorozov

Большое время между Core init и Main Loop. Где копать?

Добрый день, коллеги

Наткнулся на профайлер для Вордпресса LAPS. И показал он мне загадочную картинку.

5ae5adfc15057421818288.png
Вот эта длинна белая полоса это "задержка" между Core Init и Main Loop. И так на каждой странице сайта. На сайте более 14 тысяч постов. База на InnoDB, всего-то 234Мб.

Кеширование, конечно, спасает, но интересно разобраться: что происходит в это время?
  • Вопрос задан
  • 24 просмотра
Пригласить эксперта
Ответы на вопрос 1
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
5ae8677286270930142007.jpeg

1. Обновите плагин до 2й версии, там дополнительные данные появятся.
2. Core init - это условное событие, по сути сумма основных действий на хуке init.
3. Main Loop - это уже момент выполнения основного цикла.
4. Важно понимать, что между 2 и 3 происходит еще достаточно много чего, в том числе запросы к БД - посты, их метаданные, термины таксономий и их метаданные, выборка пунктов меню и их метаданных, некоторые опции, а также подключение темплейтов и сборка последующего вывода. На это тратится определенное количество времени, часто - существенно больше, чем на инициализацию ядра. В вашем случае тратится весьма много.
5. Чтобы более подробно смотреть что происходит "под капотом", необходимо делать профилирование кода - смотрите в сторону Xdebug и его профайлера, в сторону XHProf/Tideways, Blackfire.io и тд.

Грубо говоря, между Core Init и Main Loop и должна быть "задержка", но это вовсе и не задержка, в это время происходит много чего. Насколько эта задержка большая - зависит от вашего кода, базы, настроек сервера и тд.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы