gpt4 book ai didi

java - 代码: Java Transfer File over TCP的效率

转载 作者:可可西里 更新时间:2023-11-01 02:44:58 26 4
gpt4 key购买 nike

我想知道这两个尝试通过 TCP 套接字发送大文件的 block 在性能方面的差异。我找不到太多资源来解释它们的效率。

一个-

byte[] buffer = new byte[1024];
int number;

while ((number = fileInputStream.read(buffer)) != -1) {
socketOutputStream.write(buffer, 0, number);
}

B-

byte mybytearray = new byte[filesize];
os.write(mybytearray);

哪个在传输延迟方面更好?

此外,如果我将大小设置为 1024 或 65536 有什么区别?这将如何影响性能。

最佳答案

文件最后一个字节到达之前的延迟基本相同。然而,第一个更好,尽管缓冲区更大,原因如下:

  1. 数据开始更快到达。
  2. 没有假设文件大小适合 int
  3. 没有假设整个文件都适合内存,所以
  4. 无需更改代码即可扩展到非常大的文件。

关于java - 代码: Java Transfer File over TCP的效率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11391752/

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