gpt4 book ai didi

java - 许多嵌套的 BufferedInputStream - 有什么影响?

转载 作者:行者123 更新时间:2023-12-01 17:38:55 27 4
gpt4 key购买 nike

有一个常见的模式,当应用程序的每一层处理来自流的数据时,倾向于将其包装到 BufferedInputStream 中,因此总的来说,有很多缓冲区,从缓冲区填充,从缓冲区填充等等。

我认为这是不好的做法,并想问:它如何影响性能?这会导致错误吗?

最佳答案

这是一个非常普遍的问题,但我想说,拥有大量缓冲输入流层(任何语言)都存在许多问题。

  • 每个缓冲区都会占用内存,即使它没有被填满。因此,即使数据立即被吸收到顶层“层”,内存仍然被不必要地使用。 (注意:我假设 Java 不会自动调整其缓冲区大小或任何其他操作 - 而且我不是 Java 专家。)
  • 每当您从顶级缓冲区读取数据时,您都会引发一连串的方法调用。方法调用涉及间接(即指针跟随)、数据传递(这可能导致缓存性能不佳)等等。
  • 这可能意味着设计并没有经过深思熟虑,因为缓冲流通常应该用于从实际需要缓冲的源(例如磁盘或网络)中读取数据。

对于这个问题,我简单说一下自己的一些想法。我确信具有更好 Java 知识的人可以提供更详细的分析。

关于java - 许多嵌套的 BufferedInputStream - 有什么影响?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3423061/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com