После профилирования сайта на Drupal используется XHProf. Я вижу переменную производительность вызова ob_flush (), который вызывается только один раз на страницу.
Первая страница загрузки x
Function Calls Ex Wall Wall % ob_flush 1 1,712ms 39.5%
Вторая страница загрузки x
Function Calls Ex Wall Wall % ob_flush 1 270ms 24.5%
Третья загрузка Страница x
Function Calls Ex Wall Wall % ob_flush 1 300ms 25.3%
В настройках php.ini я отключил out_buffering = 0, как кажется, предложение для Drupal
Я вижу другие запросы на это, которые не дают четкого решения.
Есть ли способ улучшить эту производительность?
Похоже, что функция ob_flush сильно пострадала от всего после начальной загрузки Drupal. У меня был включен модуль кеша сущностей, который кэшировал пользователей в APCcache и отдыхал в базе данных (нет возможности отключить его для других сущностей). Кеш означал, что данные запроса либо отправлялись, либо извлекались из базы данных. Это замедление отражается в ob_flush, поскольку до тех пор, пока содержимое не будет полностью сгенерировано / кэшировано или извлечено, его нельзя сбросить.
После отключения модуля кеша сущностей. Теперь я вижу, что ob_flush потребляет менее 300 мс, что все еще высоко, но не так изменчиво и чрезвычайно высоко, как раньше.
Других решений пока нет …