Pergunta

No UNIX, eu posso, por exemplo, dizer ao sistema operacional que o mapeamento será necessário no futuro com posix_fadvise(POSIX_FADV_WILLNEED). Será então read-ahead os dados se ele se sente assim.

Como saber o acesso a intenção do Windows?

Foi útil?

Solução

Na verdade, como Anders sugeriu em sua maioria, não existe tal método nas funções de gerenciamento de memória disponíveis no Windows 7 e versões anteriores .

2 maneiras diferentes existe para fazer algo semelhante:

  • Leia os dados de forma assíncrona com ReadFileEx . Os dados podem então ainda estar no cache de arquivos quando necessário mais tarde.
  • Abrir o arquivo com uma pitada de streaming com o atributo FILE_FLAG_SEQUENTIAL_SCAN do CreateFile . Readahead, então, talvez, ser feito automaticamente.

Outras dicas

A partir do Windows 8, há a PrefetchVirtualMemory função para esta finalidade.

Você pode passar FILE_FLAG_RANDOM_ACCESS ou FILE_FLAG_SEQUENTIAL_SCAN para CreateFile ()

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top