MSDN站点指出:
缓冲区是内存中用于缓存数据的字节块,从而减少了对操作系统的调用次数。缓冲区提高了读写性能。缓冲器可以用于读写,但绝不能同时使用。BufferedStream的读写方法自动维护缓冲区。
我应该在每一次可能的场合上使用这个课程吗?
发布于 2009-01-29 16:22:18
以下是我正在选修的一门在线课程的课文:
BufferedStream类是一个具体的类,它扩展了stream类,并用于向另一种类型的流提供额外的内存缓冲区,包括同步和异步。在创建类的实例时,必须将BufferedStream类配置为读或写,但不能将BufferedStream配置为同时执行两个任务。 微软通过包含一个内置缓冲区,改善了.NET框架中所有流的性能。通过将BufferedStream应用于现有流(如FileStream或MemoryStream ),性能明显提高。将BufferedStream应用于现有的.NET框架流会产生双缓冲区。 BufferedStream类最常见的应用程序是在不包含内置缓冲区的自定义流类中。
发布于 2010-01-15 03:32:12
根据布拉德·艾布拉姆斯的说法,几乎从来没有过:链接
不,将BufferedStream封装在FileStream上没有任何好处。我们在4年前将BufferedStream的缓冲逻辑复制到FileStream中,以鼓励更好的默认性能。事实上,我不认为.NET框架中有任何流需要它,但是如果它们在默认情况下不进行缓冲,那么定制的Stream实现可能需要它。
发布于 2011-09-05 07:11:17
我所知道的最好的情况是当BinaryFormatter从NetworkStream直接序列化/反序列化时。使用BufferedStream在性能提高十倍之间。
https://stackoverflow.com/questions/492283
复制相似问题