2011-09-20 14 views
12

我有一個控制器,它可以從一個相當複雜的關係查詢中返回JSON或XML,同時還有一些控制器邏輯。Rails - 請求的完成時間顯着高於查看次數和數據庫時間

我已經在數據庫端調整了我的查詢並確保我的索引對我的查詢是正確的。

在我的日誌我看到類似的商品:

Completed in 740ms (View: 1, DB: 50) 

所以,如果我理解正確的話,這意味着該視圖花費了1秒鐘渲染和數據庫查詢是50毫秒。在控制器中剩下的時間了嗎?我嘗試繞過我的控制器邏輯,只留下我的to_json和to_xml在那裏,它也一樣慢。作爲參考點,我平均返回的JSON結果集爲168k。

是否有其他步驟進入完成時間?它是否包含直到網絡傳輸的最後一個字節爲止的時間?

更新:我包裹着我的控制器不同地區的基準塊:

self.class.benchmark("Active Record Find") do 
    #my query here 
end 

我發現的是,即使日誌行說DB:50我的活動記錄發現幾乎把所有的剩餘時間。所以現在我對這個DB號碼意味着什麼以及爲什麼基準線會說〜600ms,但是DB:時間將會是~50,感到困惑。

感謝

+0

請張貼 – jschorr

+0

您的意思是1ms的查詢和控制邏輯視圖呈現? – lulalala

回答

10

你的DB號是時候在數據庫中的實際花費,但不加載ActiveRecord對象。

所以,如果你加載168000個紅寶石active_record對象渲染然後爲JSON,這可以解釋你的550毫秒(或更多!)

+0

不是168k條記錄。價值168K的JSON文本。但是,是的,你是對的,數據庫的持續時間很低,但由於包含了大量內容,「進場」的數據很高。感謝您清理這個數字的含義。我能夠解決這個問題。 – Nick

相關問題