たとえば、UNIX では、将来マッピングが必要になることを OS に伝えることができますposix_fadvise(POSIX_FADV_WILLNEED)
。そう感じた場合は、データを先読みします。
アクセスの意図を Windows に伝える方法は?
たとえば、UNIX では、将来マッピングが必要になることを OS に伝えることができますposix_fadvise(POSIX_FADV_WILLNEED)
。そう感じた場合は、データを先読みします。
アクセスの意図を Windows に伝える方法は?
Windows 8 以降、PrefetchVirtualMemory
この目的のための機能があります。
実際、アンダースが主に示唆しているように、Windows7以前で利用可能なメモリ管理機能にはそのような方法はありません。
同様のことを行うには、2つの異なる方法があります。
FILE_FLAG_SEQUENTIAL_SCAN
の属性を持つストリーミングヒントを使用してファイルを開きます。その場合、先読みはおそらく自動的に行われます。FILE_FLAG_RANDOM_ACCESS
またはFILE_FLAG_SEQUENTIAL_SCAN
CreateFile()に渡すことができます