Невозможно получить PHP Yii, ожидающий TTFB время менее 2 с (с результатами профилирования) - PullRequest
0 голосов
/ 03 июля 2018

Я создал базовое приложение Yii2 https://www.yiiframework.com/doc/guide/2.0/en/start-installation, но время ожидания index.php (TTFB) всегда составляет около 2 с, не менее, время загрузки составляет около 43 мс, а все остальные ресурсы приложения по умолчанию (CSS, JS) ) загружаются за 10 мс (все, как видно из инструментов разработчика Google), это нормально. Я запускаю все на своей машине для разработки Windows 10 4 ГГц, 16 ГБ ОЗУ, низкое потребление ресурсов.

Я добавляю результаты профилирования xDebug для вызова index.php: Результаты, упорядоченные по Incl. и Результаты, упорядоченные по Self .

Можно заметить, что не существует ни одной медленной функции PHP, хотя показано, что 50% собственного времени расходуется на php::fclose мои эксперименты показывают, что комментирование этих двух строк лишь незначительно улучшает ситуацию. Так что - довольно сложно положиться на профилирование xDebug.

Я также экспериментировал с комментированием или изменением настроек отладки, но такие действия также не дают улучшений.

defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'dev');

2 секунды - это очень большое время отклика для приложения без какой-либо функциональности и запуска на локальной машине с большим количеством ресурсов. У нас есть опыт, что довольно сложные приложения Yii отвечают менее чем за 0,5 секунды, и это нормально, но 2 секунды - это недопустимое время.

Я использую XAMP, PHP 7+, Yii 2.0.14, есть проблема, поданная https://github.com/yiisoft/yii2/issues/15776, которая, в частности, 2.0.14 может быть медленнее, но проблема не подтверждена, насколько я понимаю.

Я опустил этот же проект до Yii 2.0.5 и попробовал его под XAMPP с PHP 5.6.23, и производительность отличная. Весь запрос index.php выполняется за 100 мс (в Yii 2.0.14 / PHP 7+ это заняло более 2 с).

Еще один вывод - базовое приложение Yii 2.0.13 быстро работает под XAMPP PHP 5.6, но это же приложение возвращает страницу после более чем 2 секунд под XAMPP PHP 7.2. Так что, возможно, проблемы с производительностью связаны не с Yii2.

Как поступить? Какое еще профилирование делать? Какие еще настройки нужно изменить?

1 Ответ

0 голосов
/ 22 января 2019

Я исследовал ту же проблему, и в моем случае это было related to xDebug.

Я использую Windows 10 для разработки, php 7.1.17 и Yii 2.0.15.1 и протестирован с базовым приложением yii.

Я также пробовал yii 2.0.14 / 2.0.13 / 2.0.6 / 2.0.5, и всегда был TTFB + 1100 мс.

После отключения xDebug в php.ini значение TTFB упало до 250 мс, что превосходно и прекрасно себя чувствует.

Возможно, эта проблема связана с xDebug и возникает только во время разработки, на рабочем сервере все должно быть хорошо!

...