4
將軌道2應用程序遷移到軌道3時,我遇到了大量使用的內存增加。 經過一番研究,我發現助手是問題所在。在視圖中取消任何幫助者的註釋可以加速一切。助手在軌道中使用大量內存3(.2)
事情我試圖找到真正的問題:通過重構Model.all用法一些更快的代碼
- include_all_helpers =假
- 輔助文件
- 清理代碼禁用部分
我得到了一個理論,現在有些幫手可能會被重命名或刪除,rails開始搜索它們並開始搜索模型/控制器作爲救援。
頁面請求最多需要5秒鐘,並使用2 GB的內存。
任何人都知道導致此問題的原因以及如何解決或調試它?
我發現使用的內存量巨大是由於在輔助方法中缺少方法/缺少變量。而不是錯誤處理它只是淹沒了一段時間的內存,並最終崩潰。 發現崩潰的應用程序,並等待20分鐘的服務器恢復,結果FINALLY與一些TemplateError處理程序的堆棧跟蹤,糾正了錯誤,並再次平滑頁面。 – Vikko 2012-02-10 15:47:15
我不會說這是Rails助手的一般問題。不知道我們在談論什麼幫助者,很難說出問題在哪裏。我最好的猜測是遞歸和對象保存在內存中,因爲它們仍然被引用。同時檢查你的寶石的助手。 – iltempo 2012-02-11 09:16:22
在控制器或模型中不搜索助手。 – iltempo 2012-02-11 09:17:40