为什么我的 Laravel 应用程序在生产环境中有 3+ 秒的 TTFB?

为什么我的 Laravel 应用程序在生产环境中有 3+ 秒的 TTFB?

我四处寻找,但找不到明确的答案,比如图片之类的东西是否会影响 TTFB,这是我对为什么我的网站在生产环境中加载时间这么长的最佳猜测。页面完全接收完成后,我看到它被传输了,40.7 mb resources这很大,但初始页面加载只占其中的 20.1kb,其次是图片/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 之类的内容。

我尝试过的事情:

  • 用一个简单的 echo 语句替换 index.php 中的内容<?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 公司 VMware7.1

答案1

为什么我的 Laravel 应用程序在生产环境中有 3+ 秒的 TTFB?

分析你的代码。使用调试然后管道到你的 IDE 或者KCacheGrind/QCacheGrind看看是什么增加了你的代码负担。

尽管 images/css/js 等资源有自己的 TTFB,但它们是否会增加初始页面到达第一个字节的时间?

这不是独立的,取决于您的服务器负载和配置。

再次,请先尝试分析您的代码。最好不要在生产环境中进行。

相关内容