Ruby on rails rails csv导入ram消耗问题postgres
我已经在rails应用程序中实现了CSV导入。现在的问题是ram消耗太高。我的CSV中的记录总数约为3600条,我的ram消耗量约为600MB-800MB,在使用导入方法后,它甚至不会被刷新 我可以在roo问题列表中看到类似的问题 我正在工作 轨道4.2.6 Ruby 2.2.4 代码: 最初,我的ram消耗量是:Ruby on rails rails csv导入ram消耗问题postgres,ruby-on-rails,postgresql,csv,memory-leaks,Ruby On Rails,Postgresql,Csv,Memory Leaks,我已经在rails应用程序中实现了CSV导入。现在的问题是ram消耗太高。我的CSV中的记录总数约为3600条,我的ram消耗量约为600MB-800MB,在使用导入方法后,它甚至不会被刷新 我可以在roo问题列表中看到类似的问题 我正在工作 轨道4.2.6 Ruby 2.2.4 代码: 最初,我的ram消耗量是: GetProcessMem:0x7fd3083b2a30 @mb=204.52734375 在退出该方法之前: GetProcessMem:0x7fd30ae1a7a0 @mb=2
GetProcessMem:0x7fd3083b2a30 @mb=204.52734375
在退出该方法之前:
GetProcessMem:0x7fd30ae1a7a0 @mb=289.60546875
完成并重定向到主页后:
GetProcessMem:0x7fd2fb3913d8 @mb=629.61328125
有这么多的ram消耗,我无法在heroku上部署它。
这个被消耗的ram甚至没有得到清理,必须重新启动我的服务器
任何人都可以使用解决方案或其他方法导入csv。使用此gem并使用批处理过程。这将把导入分为若干组,并降低操作所需的ram量
例如,按500排分组
我认为你只是做错了尝试这个链接查看所有方法的比较。特别是最后两个。
GetProcessMem:0x7fd2fb3913d8 @mb=629.61328125
SmarterCSV.process(file, {chunk_size: 500 }) do |array|
array.each do |sub_array|
if User.find_by_order_id(sub_array[:order_id]).present?
User.update_attribute :shipping_id, sub_array[:order_id]
end
end
end