ror export csv带来严重的性能问题

时间:2012-05-17 02:09:57

标签: ruby-on-rails performance fastercsv

export = FCSV.generate(:col_sep => l(:general_csv_separator)) do |csv|
..
end

format.csv {send_data(export), :type => 'text/csv;header=present',:filename => 'export.csv') }

我想导出大量数据。但它带来了严重的性能问题,它填补了我的记忆。有哪些更好的方法可以导出csv?

1 个答案:

答案 0 :(得分:1)

FCSV与FasterCSV相同,对吗?

处理记忆的2条建议:

  1. 将输出写入临时文件,然后发送。那样你就不需要记忆中的全部内容了
  2. 直接将输出流式传输给用户,而不是在内存中构建它。例如,请参阅此问题的已接受答案:Streaming CSV Download from Rails 3.2 app
  3. 如果生成需要花费太多时间来执行,那么您将不得不对代码进行分析,然后尝试对其进行改进...或者,将生成作为后台任务进行,并允许用户稍后再获取它。