为什么不总是使用缓冲流?

时间:2017-01-13 22:31:59

标签: performance

缓冲流优于"正常"流,因为它减少了系统调用,所以大多数时候它更快。这个论点在互联网上无处不在,但是当一个"正常"时,我无法找到一个例子。流比缓冲流好。有人可以解释或举例说明"正常"流比缓冲的更快?

2 个答案:

答案 0 :(得分:0)

许多可能的答案

  • 当它在其他地方缓冲时。拥有多层缓冲是低效的,并导致额外的复制,更不用说额外的调用
  • 错误订购和/或丢失是可以接受的。有时您会处理一个协议,只要您拥有最新数据,您就不会关心数据是否丢失。其他时候,你可以在没有缓冲的情况下更有效地处理错误排序
  • 异步做事。有时您希望尽快对数据的到达做出反应,而不是将其累积在缓冲区中。

答案 1 :(得分:0)

通常,当程序需要与其他程序通信时,您会关闭缓冲。如果流被缓冲,则消息永远不会通过并且系统挂起等待从未到来的响应。