【问题标题】:ror export csv bring a serious performance problemsror export csv 带来严重的性能问题
【发布时间】:2012-05-17 02:09:56
【问题描述】:
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 的方法?

【问题讨论】:

    标签: ruby-on-rails performance fastercsv


    【解决方案1】:

    FCSV 和 FasterCSV 一样吧?

    处理内存的2条建议:

    1. 将输出写入临时文件,然后发送。这样你就不需要记忆中的全部内容了
    2. 将输出直接流式传输给用户,而不是在内存中构建。例如,请参阅此问题的已接受答案:Streaming CSV Download from Rails 3.2 app

    如果生成需要太多时间来执行,那么您将不得不分析代码然后尝试改进它...或者,将生成作为后台任务进行并允许用户稍后获取它。

    【讨论】:

    • 感谢您的建议。这是个好主意。但是我成功导出了。内存仍然充满
    猜你喜欢
    • 2015-05-01
    • 2018-02-28
    • 1970-01-01
    • 1970-01-01
    • 2018-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-30
    相关资源
    最近更新 更多