我环顾四周,但找不到关于图像之类的东西是否会影响 TTFB 的明确答案,这将是我最好的猜测,为什么我的网站需要这么长时间才能加载到生产环境中。页面完全接收完成后,我看到它被传输40.7 mb resources
了很多,但初始页面加载仅占其中的 20.1kb,其次是 images/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
}
}
],
在这之后是诸如图像/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
我的问题是:虽然图像/css/js 等资源有自己的 TTFB,但它们是否会增加初始页面的第一个字节的时间?
编辑:我想指出的另一件事是,这发生在资源不密集的页面上,而且它所在的服务器是Microsoft Windows Server 2016 Standard和VMware, Inc. VMware7.1
分析您的代码。使用xdebug然后将其通过管道传输到您的 IDE 或KCacheGrind/QCacheGrind以查看代码的负担。
不是靠自己,取决于您的服务器负载和您的配置。
再次,尝试先分析您的代码。最好不要在生产中。