我为我的同事写了一个下载库。它将下载的数据写入文件。
我的同事发现,即使下载了 100 Mb 数据,该文件也会长时间保持较小。
所以他们建议我应该在每次 write()
之后调用 flush()
这样它就不会占用内存来缓冲这些数据。
但我不认为 100 Mb 的虚拟内存很多,并且认为 Windows 有理由缓冲这么多数据。
你怎么看?
最佳答案
我个人相信操作系统会适本地 self 调整。
至于“立即刷新,以免断电时丢失数据”——如果文件中途断电,你会相信你写入的数据没问题并从那里恢复下载吗?如果是这样,也许值得早点刷新 - 但我会权衡恢复的复杂性和相对罕见的电源故障,并在我阅读完所有内容后关闭文件。如果您看到文件写了一半,请将其删除并从头开始重新下载。
关于windows - 操作系统缓冲文件有害吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1410264/