我四处寻找,但找不到明确的答案,比如图片之类的东西是否会影响 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,但它们是否会增加初始页面到达第一个字节的时间?
这不是独立的,取决于您的服务器负载和配置。
再次,请先尝试分析您的代码。最好不要在生产环境中进行。