2012-05-17 42 views
0
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') } 

我要出口大量data.But它帶來了嚴重的性能問題,它填補了我memory.Any更好的方式來導出CSV?ROR導出CSV帶來了嚴重的性能問題

回答

1

FCSV與FasterCSV相同,對嗎?

2建議,以應對內存:

  1. 寫輸出到一個臨時文件,然後發送。這樣你就不需要內存中的所有東西
  2. 將輸出直接流式傳輸給用戶,而不是將其構建在內存中。例如,看到接受這個問題的答案:Streaming CSV Download from Rails 3.2 app

如果代花太多的時間來執行,那麼你就必須分析代碼然後嘗試改善它。另外,做一代一個後臺任務,並允許用戶稍後獲取它。

+0

謝謝您的建議。這是一個好主意。但我成功導出了。內存仍然填滿 –