.net Microsoft用于复制文件的官方缓冲区大小是多少?
我想知道在我正在开发的.Net拆分器/合并应用程序中使用哪一个缓冲区大小值是合适的,因为为了改进某些FileStream,我将设置与Microsoft内部用于Windows中的复制操作相同的缓冲区大小 我知道这些信息是存在的,而且是公开的,因为我以前在互联网上的某个地方看到过这些信息(可能是在MSDN上),但我丢失了任何引用,如果我记得好的Microsoft使用8或16 kb作为缓冲区大小,在任何情况下都肯定小于1 MB.net Microsoft用于复制文件的官方缓冲区大小是多少?,.net,windows,.net,Windows,我想知道在我正在开发的.Net拆分器/合并应用程序中使用哪一个缓冲区大小值是合适的,因为为了改进某些FileStream,我将设置与Microsoft内部用于Windows中的复制操作相同的缓冲区大小 我知道这些信息是存在的,而且是公开的,因为我以前在互联网上的某个地方看到过这些信息(可能是在MSDN上),但我丢失了任何引用,如果我记得好的Microsoft使用8或16 kb作为缓冲区大小,在任何情况下都肯定小于1 MB 我正在寻找一份官方参考资料,其中微软声明了他们使用的价值,或者某种技术上可
我正在寻找一份官方参考资料,其中微软声明了他们使用的价值,或者某种技术上可证明的答案(可能使用反射?),请避免回答“我认为他们使用了X kb…”因为不可证明。通过在中检查实现,可以很容易地检查特定流实现使用的默认缓冲区大小 例如,a的默认缓冲区大小为4096字节。 实现的默认缓冲区大小为80 Kb 当您自己选择缓冲区大小时,一个好的做法是:
- 将其设置为操作系统页面大小的倍数(通常为4096字节)
- 如果文件/流的大小很大,请使缓冲区大于单个操作系统页面
- 如果这是一个(潜在的)性能瓶颈,请进行性能测试以找到合适的大小
- 系统A上的最佳配置可能不在具有不同硬件/软件配置的系统B上
- 将其设置为操作系统页面大小的倍数(通常为4096字节)
- 如果文件/流的大小很大,请使缓冲区大于单个操作系统页面
- 如果这是一个(潜在的)性能瓶颈,请进行性能测试以找到合适的大小
- 系统A上的最佳配置可能不在具有不同硬件/软件配置的系统B上