Php

為什麼我的 Laravel 應用程序在生產中的 TTFB 超過 3 秒?

  • April 2, 2022

我環顧四周,但找不到關於圖像之類的東西是否會影響 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 StandardVMware, Inc. VMware7.1

為什麼我的 Laravel 應用程序在生產中的 TTFB 超過 3 秒?

分析您的程式碼。使用xdebug然後將其通過管道傳輸到您的 IDE 或KCacheGrind/QCacheGrind以查看程式碼的負擔。

儘管圖像/css/js 等資源有自己的 TTFB,但它們是否會增加初始頁面的第一個字節的時間?

不是靠自己,取決於您的伺服器負載和您的配置。

再次,嘗試先分析您的程式碼。最好不要在生產中。

引用自:https://serverfault.com/questions/1097609