UNIXでは、例えば、今後、マッピングが必要になることをOSに通知することができます(posix_fadvise(POSIX_FADV_WILLNEED)
)。もしそうなら、データを先読みします。ウィンドウにfadvise/madviseと同等の機能はありますか?
Windowsにアクセスする方法を教えてください。
UNIXでは、例えば、今後、マッピングが必要になることをOSに通知することができます(posix_fadvise(POSIX_FADV_WILLNEED)
)。もしそうなら、データを先読みします。ウィンドウにfadvise/madviseと同等の機能はありますか?
Windowsにアクセスする方法を教えてください。
、のWindows 7で利用可能な以前のメモリ管理機能には、このような方法はありません。
2種類の方法が似た何かをするために存在する:
FILE_FLAG_SEQUENTIAL_SCAN
属性がCreateFileのストリーミングヒントを含むファイルを開きます。先読みはおそらく自動的に行われます。あなたがのCreateFileにFILE_FLAG_RANDOM_ACCESS
またはFILE_FLAG_SEQUENTIAL_SCAN
を渡すことができます()
Windows 8からは、この目的のためにPrefetchVirtualMemory
関数があります。
これは、Windows上での唯一のヒントの可能性ですか? –
ヒントが出る限り、私はそう思います。キャッシュやそのようなものは無効にすることができますが、他のフラグの中にはアライメント要件がありますので、単純なヒント – Anders
FILE_ATTRIBUTE_TEMPORARYが役立ちます。http://msdn.microsoft.com/en-us/library/aa363858 %28v = vs.85%29.aspx#caching_behaviorこれは、利用可能なキャッシュメモリが十分にある場合、システムがディスクにデータを書き込まないように指示します。 – BCran