使用Java傳輸(不管UP/DOWN)大型文件(3-4演出)時使用的敏感緩衝區大小是多少?使用Java下載文件時的顯式緩衝區大小
byte buf[] = new byte[1024]
或
byte buf[] = new byte[5 * 1024 * 1024]
有時即使你使用一個大的緩衝區,並傳遞給讀(字節數組[])方法並不能保證你,你會得到一個完整的5我緩衝。在我的測試中,我觀察到每個read()調用的平均大小通常爲1.5kb。這是否明智的表現?如果有人能夠指點我一個資源來更詳細地討論這個問題,我會很高興。
Hmz,好點。我沒有真正考慮過TCP堆棧的MTU。 – LordDoskias
使用較大的緩衝區將減少Java代碼和本機代碼之間的開關數量,並且可能會對性能產生影響,而與網絡數據包大小無關。 – jarnbjo
由於我的經驗顯示8-100KB緩衝區足夠好。 – umbr