【发布时间】:2011-02-05 00:23:12
【问题描述】:
我正在使用 Windows API 来处理文件。我的表现非常好。我分块读取文件,但我不知道它的最佳大小。我知道它应该是磁盘簇大小的倍数。
磁盘有缓存吗?如果我使用大于缓存的块,我的性能应该最差?我说的对吗?
谢谢!
【问题讨论】:
标签: windows file optimization
我正在使用 Windows API 来处理文件。我的表现非常好。我分块读取文件,但我不知道它的最佳大小。我知道它应该是磁盘簇大小的倍数。
磁盘有缓存吗?如果我使用大于缓存的块,我的性能应该最差?我说的对吗?
谢谢!
【问题讨论】:
标签: windows file optimization
是的,Windows 在处理文件时提供了一个缓存层。见official MS documentation。我不确定确切的缓存大小和可能的权衡,缓存大小很有可能取决于系统的可用内存大小以及其他因素。
另一个提高性能的好方法是使用异步 I/O API。它更难编写和维护,但会提高你的性能。见official example。
【讨论】: