Pergunta

Ao exibir um arquivo grande, memória mapeada em uma caixa de rolagem, é mais adequado para ter a vista representar o arquivo inteiro, ou apenas a região do arquivo atualmente sendo exibido?
De forma mais ampla, em que nível de abstração é paginação feito com arquivos de memória mapeada da Net? É o tamanho / quantidade do arquivo retido na memória relacionada com os MemoryMappedViewAccessors página, ou é independente destes objetos?

Foi útil?

Solução

É independente; os dados não são copiados para a memória até que o endereço (ou o endereço de um próximo) é acessado. No entanto, o tamanho da visualização conta contra o espaço de endereço do seu processo. Isso é realmente importante em sistemas de 32 bits uma vez que o espaço de endereço processo é limitado a 2 GB ou 3 GB. Isso afeta a capacidade de fazer alocações futuras, devido à possibilidade de que um bloco contíguo do tamanho desejado pode não estar disponível no espaço de endereço.

A capacidade de usar grandes vistas é frequentemente citado como uma grande vantagem de sistemas de 64 bits.

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