字节分配 影响 JAVA NIO 中的文件传输



我有一个 7Gig 文件要在 2 种情况下使用 JAVA NIO 发送:

  • 首先是客户端将是发送文件的人,我将缓冲区分配为 500MB,它很快,只需要 30 秒

  • 其次是服务器将是一个发送文件的人,我仍然使用 500MB 作为我的缓冲区,但我花了将近 30 分钟来发送文件,但是当我减少缓冲区分配时,它提高了性能,直到我达到 1MB 缓冲区分配,我花了 1 分钟发送文件。

但是在第一种情况下,我也减少了它,但它只会降低发送文件的性能。

有人可以解释我为什么会发生这种情况吗?

从发布的信息来看,可能是TCP的拥塞避免/Nagle在服务器端工作。要检查对速度的影响,请遵循每种方法并注意每个步骤的差异。

  1. 通过TCP_NO_DELAY禁用内格尔
  2. 使用分散,聚集。

两者的示例可以在这里找到:http://bedrin.livejournal.com/207032.html

最新更新