2

在通过 WAN 读取文件时调查我的应用程序的一些性能下降时,我注意到在 Windows 资源管理器中复制该文件要快得多。

对 Process Monitor 的进一步调查揭示了原因:我的应用程序使用 C 运行时的默认 BUFSIZE 512,而 Windows Explorer 以某种方式确定它应该以 61440 字节块读取文件(这显然是 SMB 或 Windows 支持的最大值' 实施 SMB)。因此,Windows 资源管理器必须减少很多往返行程并且运行得更快。

大多数关于缓冲区大小的建议都在 4k-16k 范围内,但对于 WAN 环境,通过最大化缓冲区大小来最小化往返行程是有意义的。Windows 资源管理器如何确定要使用的缓冲区大小?

4

1 回答 1

0

我会认为小于网络 MTU 的东西可能会很好

于 2011-06-30T15:35:55.877 回答