Я исследовал это с помощью Query Monitor, и результаты сбивают с толку, поскольку производительность базы данных выглядит удовлетворительной.
Среда
- WordPress (последняя версия)
- Пользовательская тема + дочерняя тема
- Активно задействованный плагин: enovathemes-addons
- Макет на основе компоновщика страниц
- PHP с включенным OPcache
- Установлен APCu и установлен Плагин APCu Object Cache включен
- /case-study/ (страница со списком): время создания страницы ~63 секунды.
- /case-study/single-post/: ~512 мс
- Запросы внешней сети загружаются нормально, как только страница отвечает
- Время генерации страницы: 63,13 с
- Запросы к базе данных: 223 запроса
- Общее время работы с БД: ~0,8 с
- Пиковое использование памяти: ~32 МБ
- Вызовы HTTP API: Нет
- Показатель попадания в кэш объектов: ~93%
- Постоянный кэш объектов: Включен (APCu)
Ошибки/предупреждения
Монитор запросов показывает повторяющиеся предупреждения PHP во время загрузки страницы:
Warning: Attempt to read property "guid" on null
wp-content/plugins/enovathemes-addons/shortcodes/shortcodes.php
Это предупреждение появляется несколько раз при отображении страницы со списком тематического исследования.Соответствующий фрагмент кода (функция короткого кода)
Плагин использует короткие коды для отображения таких элементов, как логотипы. Один пример:
$logo = get_post($logo);
$logo_src = $logo->guid;
get_post() иногда возвращает значение null, но код обращается к $logo->guid без проверки.
Существуют также такие вызовы, как:
file_get_contents($logo->guid);
Подробнее здесь: https://stackoverflow.com/questions/798 ... ries-are-f
Мобильная версия