我有這種代碼的作用:長差與包括
Timesheet::WorkPeriod.includes(:ship).limit(2000).to_a
render nothing: true
服務器答案給出:
method=GET path=/timesheet_reports/rest_hours format=html controller=Company::Timesheet::ReportsController action=rest_hours status=200 duration=2106.43 view=3.68 db=23.75
但是,在瀏覽器中渲染需要6秒(空白)頁面。有4秒的差異,如果我更改2000
更高的價值,它會增加。
這是正確的,如果我刪除includes
或to_a
。如果我這樣做也是如此:
Timesheet::WorkPeriod.includes(:ship).limit(2000).each(&:id)
即使存在n + 1查詢問題,刪除包含也是最快的。
我使用ruby 2.3和Rails 4.2。
我想有一個內存分配問題,但我不知道如何解決它。我能做什麼?