¿Qué es fadvise / madvise equivalente en windows?
-
05-07-2019 - |
Pregunta
En UNIX, puedo, por ejemplo, decirle al sistema operativo que la asignación será necesaria en el futuro con posix_fadvise (POSIX_FADV_WILLNEED)
. A continuación, leerá los datos si lo cree así.
¿Cómo saber la intención del acceso a Windows?
Solución
En realidad, como lo sugirió Anders en su mayoría, no existe un método de este tipo en las funciones de administración de memoria disponibles en Windows 7 y versiones anteriores .
Existen 2 formas diferentes de hacer algo similar:
- Lea los datos de forma asíncrona con ReadFileEx . Es posible que los datos aún estén en la memoria caché del archivo cuando se necesiten más adelante.
- Abra el archivo con una sugerencia de transmisión con el atributo
FILE_FLAG_SEQUENTIAL_SCAN
de CreateFile . Readahead quizás se haga automáticamente.
Otros consejos
A partir de Windows 8, está PrefetchVirtualMemory
para este propósito.
Puedes pasar FILE_FLAG_RANDOM_ACCESS
o FILE_FLAG_SEQUENTIAL_SCAN
a CreateFile ()
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow