gpt4 book ai didi

java - 在 Java 中下载文件时的合理缓冲区大小

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:16:37 24 4
gpt4 key购买 nike

使用 Java 传输(无论 UP/DOWN)大文件(3-4 GB)时,合理的缓冲区大小是多少?

byte buf[] = new byte[1024]

byte buf[] = new byte[5 * 1024 * 1024]

有时,即使您使用大缓冲区并传递给 read(byte array[]) 方法,这也不能保证您将获得完整的 5 me 缓冲区。在我的测试中,我观察到每次 read() 调用的平均大小通常为 1.5kb。这在性能方面有意义吗?如果有人能指出我更详细地讨论这个问题的资源,我会很高兴。

最佳答案

听起来您正在从网络连接(TCP?)读取数据

1500 字节是默认以太网 MTU ,这解释了为什么每次读取通常会获得 1.5KB。通过将网络堆栈配置为使用 jumbo frames,通常可以将 MTU 增加到 9KB .

考虑到这一点,几乎可以肯定,使 buf 大于 9KB 毫无意义。使用较小的缓冲区(比如超过 1KB)可能会对性能产生负面影响,也可能不会。

无论如何,获得明确答案的唯一方法是通过基准测试各种缓冲区大小。

关于java - 在 Java 中下载文件时的合理缓冲区大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7308957/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com