【发布时间】:2015-06-04 19:48:43
【问题描述】:
我正在分析一个产品在 Windows 平台上的性能。使用 CloseHandle() 函数关闭该文件的句柄是否会将内容刷新到磁盘并将其从 RAM 中删除? Windows 平台:Windows Server 2008 R2 作为虚拟机
编辑:我正在分析一个数据库产品。我们看到 RAM 使用量突然减少。我浏览了 CloseHandle 的 MSDN 并看到一行写着“对象的最后一个句柄关闭后,该对象将从系统中删除。”这个词 system 这里不清楚。在关闭最后一个句柄之前,我们已经在使用 FlushFileBuffers() 来持久化数据。 由于数据库文件可能很大,FlushFileBuffers() 会导致大量磁盘 I/O。将 Windows Server 用作 VM 会降低磁盘 I/O 的性能吗?
【问题讨论】:
-
不,写回磁盘是惰性的。不要乱用它,使用 FlushFileBuffers() 不是一个好主意。
标签: windows winapi file-io operating-system virtual-machine