我有一個rails項目。 我在一個控制器中有很奇怪的事情:瀏覽器需要大約3分鐘後負荷頁,但Rails的日誌中寫道:Rails:頁面加載時間很長
Completed 200 OK in 20563ms (Views: 17144.2ms | ActiveRecord: 324.4ms)
我知道這個數據不夠,但我不期望完整的答案只有一個指針哪裏是麻煩。 這個頁面的大小約5 Mb。
我有一個rails項目。 我在一個控制器中有很奇怪的事情:瀏覽器需要大約3分鐘後負荷頁,但Rails的日誌中寫道:Rails:頁面加載時間很長
Completed 200 OK in 20563ms (Views: 17144.2ms | ActiveRecord: 324.4ms)
我知道這個數據不夠,但我不期望完整的答案只有一個指針哪裏是麻煩。 這個頁面的大小約5 Mb。
正如您所看到的,大部分時間都花在「閒置」階段。這包括加載頁面上所有資源(圖像,樣式表,JavaScript等)的時間。因此,您的HTML頁面將在10秒內加載並呈現,但剩下的時間用於下載頁面中的所有資源。
這可能是某個服務器上託管的單個資源,它對響應您的請求的響應速度很慢。因此,即使你已經加載了所有的內容,但你有一個谷歌託管的jquery文件在那裏,並且互聯網連接性很差,那麼你會看到「空閒」佔用大量時間。
但是,就你而言,它看起來像5MB頁面上的一些圖像。
延遲可能是由config/environments/development.rb
中的config.assets.debug = true
造成的。將其設置爲false
可能會解決您的問題。
通過這樣做,源文件組合在一起和源地圖將不會 工作(例如,如果使用的Sass /咖啡,你不會看到它在devtools)
我發現了一個問題後,漫長的搜索。 對於主對象加載許多相關對象的數據庫來說,這是不必要的查詢。但我不明白爲什麼它需要這麼多時間(也許GC清理它混亂)。
您是否在使用CDN爲您的網頁上的資產提供服務?你是否也在本地看到這種行爲?大部分圖片是來自其他網站還是存儲在您的資產管道中? –
在Chrome開發人員控制檯中發佈「網絡」選項卡的屏幕截圖,以便我們可以清楚地看到哪個請求需要多長時間。 –
還要確保你沒有做'n + 1'風格的查詢。當您在模板視圖中調用關聯時,這是一個簡單的錯誤。 – Jeff