0

順番に処理したい大きなバイナリファイル(約1GB)があります。ファイルにアクセスするためにメモリマップトファイルを使用しています。できるだけ早くファイル全体をスワップするように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 に答える