2012-01-13 49 views
0

如果與send_file一起發送的文件大小與默認緩衝區大小(4096字節)相似,那麼是否總是有意義使用stream: false例如,如果緩衝區大小非標準,那麼是否存在代理或瀏覽器崩潰?緩衝區大小=文件大小對Rails send_file有用嗎?

相關:

  1. 是否緩衝區大小指文件HTTP數據包
  2. 你能推薦一個Firefox擴展來檢查這個級別的HTTP數據包嗎?
+0

導軌緩衝區更改會影響rails-> webserver通信。所有的東西都會在網絡服務器調用並傳遞給客戶端之前調用。 – 2012-01-13 15:41:21

+0

@MarcB:你什麼意思? HTTP包大小是否不受緩衝區大小的影響? – l0b0 2012-01-13 15:42:16

回答

1

如果你看一下source,軌道基本上沒有

File.open(path, 'rb') do |file| 
    while buf = file.read(len) 
    output.write(buf) 
    end 
end 

而且buffer_size選項控制len值。在IO活動方面,非常小的值len是非常低效的,非常大的值會浪費內存。然後如何分解成tcp數據包不在你的控制之下。如果你要改變這個值,把它增加到文件的大小將會是浪費 - 我不認爲你需要超過幾百K - 128K或256K將是充足的。最佳緩衝區大小將取決於操作系統/硬件。