Pergunta

Eu estou tentando ler alguns arquivos de texto ( em torno de 300 kb cada ).Até agora estou usando o Filestream para abrir o arquivo e ler.( DELIMITADO POR TABULAÇÕES ).No entanto, eu ouvi sobre o arquivo de memória mapeada em .net 4.0.Seria a minha lê mais rápido ?

Existe algum código de exemplo que faz a leitura de um simples arquivo e comparar o desempenho ?

Foi útil?

Solução

Se os arquivos estiverem no disco e precisarem ser lidos na memória, o uso de um arquivo mapeado de memória não ajudará, pois você ainda precisa lê -los no disco.

Se tudo o que você está fazendo é ler os arquivos, não há sentido no mapeamento da memória.

Arquivos mapeados de memória são para uso quando você está fazendo um trabalho intensivo com o arquivo (lendo, escrevendo, mudando) e deseja evitar o disco IO.

Outras dicas

Se vocês são apenas ler arquivos com mapeias de memória não faz sentido; Ainda leva a mesma quantidade de tempo para carregar os dados do disco. Os arquivos mapeados de memória se destacam quando muitas leituras e/ou gravações aleatórias devem ser executadas em um arquivo, pois não há necessidade de interromper as operações de leitura ou gravação com operações de busca.

Com o seu quantidade de dados de participação de Fmm não dar qualquer tipo de vantagem.No entanto, em geral, se preocupa em realizar os testes, ele vai encontrar, que a cópia grande (enorme) de arquivos usando o Fmm é mais rápido do que chamar ReadFile/WriteFile sequencialmente.Isso é causado por diferentes mecanismos utilizados internamente no Windows MMF para a gestão e para a e / s de arquivo.

Processando dados na memória sempre mais rápido do que fazer algo semelhante via disco IO. Se o seu processamento for sequencial e facilmente se encaixa na memória, você pode usar File.readLines () Para obter a linha de dados por linha e processá -los rapidamente sem sobrecarga de memória dura. Aqui exemplo: Como abrir um grande arquivo de texto em C#

Verifique esta resposta também: Quando usar arquivos mapeados de memória?

O arquivo mapeado de memória não é recomendado para ler arquivos de texto. Para ler o arquivo de texto, você está fazendo corretamente com o FileStream. MMP é melhor ler dados binários.

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