我想知道在我正在开发的.Net拆分器/合并器应用程序中使用哪个正确的缓冲区大小值,因为要改进一些 FileStream 我将设置相同的缓冲区大小正如 Microsoft 内部用于 Windows 中的复制操作。
我知道这些信息是存在的并且是公开的,因为我过去在某个地方通过互联网看到了这些信息(可能在 MSDN )但是我丢失了任何参考资料,如果我记得好 Microsoft < / strong>使用8或16 kb作为缓冲区大小,在任何情况下肯定都小于1 MB。
我正在寻找官方参考,其中 Microsoft 指出他们使用的价值,或者某种技术上可证明的答案(可能使用反思?),请避免答案如“我认为他们使用X kb ... ”因为无法证明。
答案 0 :(得分:4)
通过检查reference source中的实现,可以轻松检查特定流实现使用的默认缓冲区大小。
默认缓冲区大小,例如FileStream
是4096字节。
Stream.Copy
实现的默认缓冲区大小为80 Kb。
自己选择缓冲区大小时的一个好习惯是: