В UNIX я могу, например, сообщить ОС, что сопоставление будет необходимо в будущем с posix_fadvise(POSIX_FADV_WILLNEED)
. Затем он будет считывать данные, если это так.Что такое fadvise/madvise эквивалент на окнах?
Как узнать доступ к Windows?
В UNIX я могу, например, сообщить ОС, что сопоставление будет необходимо в будущем с posix_fadvise(POSIX_FADV_WILLNEED)
. Затем он будет считывать данные, если это так.Что такое fadvise/madvise эквивалент на окнах?
Как узнать доступ к Windows?
На самом деле, как и Андерс предложил в основном, нет такого метода в функции управления памятью, доступных в Windows 7 и более ранних.
2 различных способов существует для того чтобы сделать что-то подобное:
FILE_FLAG_SEQUENTIAL_SCAN
CreateFile. Readahead затем, возможно, будет автоматически выполнен.Вы можете передать FILE_FLAG_RANDOM_ACCESS
или FILE_FLAG_SEQUENTIAL_SCAN
к CreateFile()
Начиная с Windows 8 для этой цели существует функция PrefetchVirtualMemory
.
Это единственные возможности поиска в Windows? –
Что касается подсказок, я так думаю. Вы можете отключить кеширование и тому подобное, но некоторые из этих других флагов имеют требования к выравниванию, поэтому его более чем простая подсказка – Anders
FILE_ATTRIBUTE_TEMPORARY тоже выглядит полезной - согласно http://msdn.microsoft.com/en-us/library/aa363858 % 28v = vs.85% 29.aspx # caching_behavior, он сообщает системе, чтобы избежать записи данных на диск, если доступно достаточное количество кэш-памяти. – BCran