
Я поискал, но не могу найти точного ответа на вопрос, влияют ли такие вещи, как изображения, на TTFB, что было бы моей лучшей догадкой относительно того, почему мой сайт так долго загружается в рабочем режиме. После того, как страница полностью получена, я вижу, что она передана, 40.7 mb resources
что много, но начальная загрузка страницы составляет всего 20,1 КБ из этого, за которыми следуют изображения/js/css.
Файл .har, экспортированный из инспектора сети:
"pages": [
{
"startedDateTime": "2022-04-01T23:10:26.010Z",
"id": "page_1",
"title": "https://example.com/",
"pageTimings": {
"onContentLoad": 5878.881000004185,
"onLoad": 6390.734000000521
}
}
],
А после этого следуют такие вещи, как images/js/css.
Что я пробовал:
- Замена содержимого в index.php простым оператором echo, который был,
<?php echo 'foobar'; ?>
и это сразу же решило проблему, поскольку загрузка страницы заняла меньше секунды. - Обеспечил, чтобы у него была та же конфигурация кэша, что и у других приложений, размещенных на том же сервере, и которые также загружаются гораздо быстрее.
composer install --optimize-autoloader --no-dev
composer dump-autoload -o
php artisan route:cache
php artisan config:cache
Мой вопрос: хотя такие ресурсы, как images/css/js, имеют собственное TTFB, могут ли они увеличивать время до первого байта для начальной страницы?
Редактировать: Еще одна вещь, на которую я хотел бы обратить внимание, это то, что это происходит на страницах, которые не требуют больших ресурсов, а также то, что сервер, на котором это происходит,Microsoft Windows Server 2016 СтандартныйиVMware, Inc. VMware7.1
решение1
Почему время TTFB моего приложения Laravel в продакшене составляет более 3 секунд?
Профилируйте свой код. Используйтеxdebugзатемтруба эток вашей IDE или кKCacheGrind/QCacheGrindчтобы увидеть, что перегружает ваш код.
Хотя такие ресурсы, как images/css/js, имеют собственное TTFB, могут ли они увеличивать время до первого байта для начальной страницы?
Сами по себе нет, зависят от нагрузки на сервер и ваших конфигураций.
Опять же, попробуйте сначала профилировать свой код. Желательно не в продакшене.