
我環顧四周,但找不到關於圖像之類的東西是否影響 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
}
}
],
接下來是 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,但它們是否會增加初始頁面第一個字節的時間?
編輯:我想指出的另一件事是,這種情況發生在資源不密集的頁面上,而且它所在的伺服器是微軟 Windows Server 2016 標準版和VMware, Inc. VMware7.1
答案1
為什麼我的 Laravel 應用程式在生產環境中的 TTFB 時間超過 3 秒?
分析您的程式碼。使用偵錯然後用管道輸送到您的 IDE 或KCacheGrind/QCacheGrind看看是什麼給你的程式碼帶來了負擔。
儘管 images/css/js 等資源有自己的 TTFB,但它們是否會增加初始頁面的第一個字節的時間?
不依賴它們自己,取決於您的伺服器負載和配置。
同樣,首先嘗試分析您的程式碼。最好不在生產。