为什么NIO代码比Java IO快?

时间:2014-12-09 11:12:46

标签: java io nio

我有很多关于Java NIO的任务。我已经阅读了许多文章,其中讨论被深入挖掘。但我真的不知道NIO在哪些方面比IO更快。

此外,我发现使用Java NIO代码下载100MB文件的速度至少比使用Java IO代码下载快10倍。

现在关于这个事实的问题是:

假设我下载的文件是1KB。在这种情况下,1KB文件的NIO代码仍然快10倍吗?

1 个答案:

答案 0 :(得分:1)

一般来说,NIO比传统Java IO更快,因为它减少了内存中复制的数量。然而,即使对于大型文件,速度提高十倍也难以置信。当我们谈论下载文件(而不是将它们读/写到磁盘)时,性能可能会受到加载机器的带宽和端到端延迟的影响。

最后,您可能会发现NIO对小文件的相对加速比率更低......因为建立网络连接,发送请求,处理标头等的开销很大。