【问题标题】:Why reading and array of bytes at a time is faster than reading one byte?为什么一次读取一个字节数组比读取一个字节快?
【发布时间】:2017-07-10 20:09:11
【问题描述】:

“一次读取一个字节数组比一次读取一个字节快得多”
我在尝试学习输入流时看到了 there 这句话。为什么会这样?

【问题讨论】:

  • 这可以引起非常广泛的讨论。基本上,由于计算机体系结构、电子设备以及其他方面的原因,分块读取比读取单个字节要快。
  • 哪个更快? 1. 拿起一本书,读一个字母,放下书,重复。 2. 拿起一本书,读整个句子,放下书,重复。
  • 哇!感谢您的完美回答
  • 这取决于您连接到文件以从中读取字节的数量。如果您在一个连接中读取每个字节,那么它与在一个连接中读取所有字节一样快。
  • 因为 I/O 很慢。

标签: java byte inputstream


【解决方案1】:

并不是说获取 50 个字节的数组比获取 1 个字节快。就是随着时间的推移,以 50 个块为单位获取 1,000,000,000 个字节的数据比一个接一个地获取 1,000,000,000 个字节要快。

这与我们一次不去杂货店做一件事的原因相同。
花费最多时间的是旅行,而不是我们得到的杂货数量。
(本例中杂货是字节,而行程是从内存中检索数据)

【讨论】:

  • 感谢您用一个很好的例子回答:)
  • 还值得一提的是,这高度依赖于输入蒸汽的种类。基于内存字节数组的一个将非常快,即使一次一个字节也是如此。基于文件的一个将从分块中受益更多。打个比方,这取决于杂货店的距离。这就是为什么我们一次买很多杂货,但可以只从冰箱里拿出一瓶,即使我们可能在几分钟内想要第二瓶。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多