ich eine Aktion mit dieser Art von Code haben:Lange Differenz zwischen Serverantwort und Browser-Ergebnis mit umfasst
Timesheet::WorkPeriod.includes(:ship).limit(2000).to_a
render nothing: true
Der Server Antwort gibt:
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
Aber im Browser, die Rendering Nimm 6 Sekunden (für eine leere Seite). Es gibt einen Unterschied von 4 Sekunden und es erhöht sich, wenn ich 2000
für einen höheren Wert ändere.
Es ist korrekt, wenn ich die includes
oder die to_a
entfernen. Es ist das gleiche, wenn ich das tue:
Timesheet::WorkPeriod.includes(:ship).limit(2000).each(&:id)
Das Entfernen der Includes ist am schnellsten, auch wenn es ein n + 1 Abfrageproblem gibt.
Ich benutze Ruby 2.3 und Rails 4.2.
Ich nehme an, es gibt ein Problem mit der Speicherzuweisung, aber ich weiß nicht, wie ich es lösen soll. Was kann ich tun?