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

Performance 为什么不总是使用缓冲流?,performance,Performance,缓冲流比“普通”流更好,因为它进行的系统调用更少,所以在大多数情况下速度更快。这种观点在互联网上随处可见,但我找不到“正常”流比缓冲流更好的例子。有人能解释或举例说明“正常”流比缓冲流快吗 一些可能的答案 当它被缓冲到其他地方时。拥有多层缓冲是低效的,会导致额外的复制,更不用说额外的调用了 错误订购和/或丢失是可以接受的。有时,在处理协议时,只要您拥有最新的数据,您就不在乎数据是否丢失。其他时候,您可能能够在没有缓冲区的情况下更有效地处理错误排序 异步执行操作时。有时,您希望尽快对数据的到达做

缓冲流比“普通”流更好,因为它进行的系统调用更少,所以在大多数情况下速度更快。这种观点在互联网上随处可见,但我找不到“正常”流比缓冲流更好的例子。有人能解释或举例说明“正常”流比缓冲流快吗

一些可能的答案

  • 当它被缓冲到其他地方时。拥有多层缓冲是低效的,会导致额外的复制,更不用说额外的调用了
  • 错误订购和/或丢失是可以接受的。有时,在处理协议时,只要您拥有最新的数据,您就不在乎数据是否丢失。其他时候,您可能能够在没有缓冲区的情况下更有效地处理错误排序
  • 异步执行操作时。有时,您希望尽快对数据的到达做出反应,而不是将其累积到缓冲区中
当程序需要与其他程序通信时,通常会关闭缓冲。如果流被缓冲,消息将永远无法通过,系统将挂起等待永远不会出现的响应