异步刷新文件到磁盘的策略

时间:2014-05-23 18:11:00

标签: windows winapi

我正在编写一个应用程序,它将文件映射到内存中,以使某些信息能够适应故障(崩溃,停电等)。我知道我的想法是刷新as infrequently as allowable,但是为了做正确的事情,并考虑到目标,在我看来,我应该在数据发生变化时基本上刷新到磁盘。

所有映射数据都适合单个页面。我有一个突发使用模式(没有任何事情发生在一个懒散的时间,然后突然你修改信息〜连续20次)。出于这个原因,我对FlushViewOfFile犹豫不决,因为它似乎是同步的。冲击时每次冲击似乎效率低下。

我有没有办法告诉Windows下次有空闲周期时刷新页面,而不让我等到它就行了?

1 个答案:

答案 0 :(得分:0)

我不相信Windows中有这样的功能。 FlushViewOfFile是你必须要做的事情。您将不得不考虑一个'调度程序'对于与您的用例/配置文件匹配的程序。比如在每次点击后启动一个短暂的计时器,如果有另一个点击则重置,如果它到期则刷新页面,一个长计时器如果到期则刷新页面尽管仍处于爆发状态可能对你很有效。在任何情况下,您都需要分析使用情况,并让程序采取相应的行动。