【发布时间】:2011-03-06 23:33:17
【问题描述】:
我目前的任务是将文件加载到页面缓存中,并且我也想加载锁定的文件。目标无非是主动将数据集保存在 RAM 中,减少第三方应用程序的加载时间。
影子副本是我对此的第一个想法,但不幸的是似乎有分离的页面缓存。
那么有什么办法可以绕过排他锁机制作弊吗?就像在磁盘上获取文件片段位置,访问整个磁盘并直接读取(我担心这是另一个单独的页面缓存,无论如何)?
或者是否有一种非常不同的方法来引导页面缓存,例如一些可以被告知将特定文件加载到页面缓存中的 Windows API?
【问题讨论】:
-
如果文件已经被锁定,这是否意味着第 3 方应用程序正在运行,因此不需要任何帮助启动?
-
以大型数据库文件为例。它是独占打开和锁定的,因为 DB 应用程序是唯一期望 a) 写入文件和 b) 对文件具有一致视图的应用程序。此外,排他锁很容易防止多个实例的事故。 但是数据库应用程序不会读取整个文件,只会读取必要的部分和索引。我想通过将所有数据读入页面缓存来“帮助”该应用程序。
-
是什么让您认为您可以比操作系统更多地“帮助”程序?
-
操作系统不敢将预读增加到几 GB :-)