Was ist fadvise / madvise Äquivalent auf Windows?
-
05-07-2019 - |
Frage
Unter UNIX kann ich zum Beispiel sagen, das Betriebssystem, das die Abbildung wird in Zukunft mit posix_fadvise(POSIX_FADV_WILLNEED)
benötigt werden. Es wird dann die Daten lesen grünes Licht, wenn es fühlt sich so.
Wie der Zugang zu sagen beabsichtigt Windows?
Lösung
Tatsächlich, wie Anders meist vorgeschlagen, gibt es keine solche Verfahren in den Speicherverwaltungsfunktionen in Windows 7 und früher .
2 verschiedene Möglichkeiten gibt es ähnlich, etwas zu tun:
- Lesen Sie die Daten asynchron mit ReadFileEx . Die Daten könnten dann noch in dem Datei-Cache sein, wenn später benötigt werden.
- Öffnen Sie die Datei mit einem Streaming-Hinweis mit dem
FILE_FLAG_SEQUENTIAL_SCAN
Attribut von Create . Readahead würde dann vielleicht automatisch erfolgen.
Andere Tipps
Beginnend mit Windows 8 gibt es die PrefetchVirtualMemory
Funktion für diesen Zweck.
Sie können FILE_FLAG_RANDOM_ACCESS
oder FILE_FLAG_SEQUENTIAL_SCAN
zu Createfile () übergeben
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow