【发布时间】:2016-08-19 14:15:25
【问题描述】:
我已经在我的 rails 应用中实现了 CSV 导入。现在的问题是内存消耗太高。总数我的 CSV 中的记录数约为 3600,我的 ram 消耗量约为 600MB - 800MB,并且在退出导入方法后甚至没有被刷新。
我可以在 roo 问题列表https://github.com/roo-rb/roo/issues/179 中看到类似的问题
我正在努力 导轨 4.2.6 红宝石 2.2.4
代码:
data = CSV.foreach(file.path, headers: true)
data.each do |row|
Model.create(row ....)
.........
end
最初我的内存消耗是:
GetProcessMem:0x7fd3083b2a30 @mb=204.52734375
退出方法前:
GetProcessMem:0x7fd30ae1a7a0 @mb=289.60546875
完成并重定向到主页后:
GetProcessMem:0x7fd2fb3913d8 @mb=629.61328125
有了这么多内存消耗,我无法在 heroku 上部署它。 这个消耗的内存甚至没有被清理,必须重新启动我的服务器。
任何有解决方案或任何替代方式来导入 csv 的人。
【问题讨论】:
-
我认为您只是做错了尝试此链接以查看所有方法的比较。尤其是最后两个。 dalibornasevic.com/posts/…
标签: ruby-on-rails postgresql csv memory-leaks