0

我有一个大的二进制文件(大约 1 GB),我想按顺序处理。我正在使用内存映射文件来访问该文件。有没有办法告诉 Windows 尽快交换整个文件?目前,每次出现页面错误时,Windows 似乎只加载一个页面,这会导致处理速度非常慢。

4

2 回答 2

2

我真的很惊讶没有人提到PrefetchVirtualMemory

BOOL WINAPI PrefetchVirtualMemory(
  _In_  HANDLE hProcess,
  _In_  ULONG_PTR NumberOfEntries,
  _In_  PWIN32_MEMORY_RANGE_ENTRY VirtualAddresses,
  _In_  ULONG Flags
);

以下是其他一些链接:

就个人而言,我不知道这对您的应用程序是否是一个好主意。但可以肯定 - 试试看,看看它是否有帮助!

恕我直言 ..

于 2012-12-08T17:58:22.780 回答
1

当您希望强制将文件的一部分分页到内存中时,请ReadFile使用您用于创建文件映射的文件句柄进行调用。

于 2012-12-08T19:01:24.263 回答