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