Что такое эквивалент fadvise / madvise для Windows? - PullRequest
10 голосов
/ 29 июля 2009

В UNIX я могу, например, сказать ОС, что в будущем потребуется сопоставление с posix_fadvise(POSIX_FADV_WILLNEED). Затем он будет перечитывать данные, если это так.

Как узнать, намерен ли доступ к Windows?

Ответы [ 3 ]

9 голосов
/ 08 декабря 2009

На самом деле, как в основном предлагал Андерс, в функциях управления памятью, доступных в Windows 7 и более ранних версиях , такого метода нет.

Существует 2 различных способа сделать что-то подобное:

  • Чтение данных асинхронно с ReadFileEx . Затем данные могут все еще находиться в файловом кеше, если потребуется позже.
  • Открыть файл с подсказкой потоковой передачи с атрибутом FILE_FLAG_SEQUENTIAL_SCAN, равным CreateFile . В этом случае чтение может быть выполнено автоматически.
6 голосов
/ 19 сентября 2013

Начиная с Windows 8, для этой цели предусмотрена функция PrefetchVirtualMemory.

4 голосов
/ 29 июля 2009

Вы можете передать FILE_FLAG_RANDOM_ACCESS или FILE_FLAG_SEQUENTIAL_SCAN в CreateFile ()

...