Domanda

Sto cercando di leggere alcuni file di testo (circa 300 kb ciascuna). Fino ad ora ho usato il Filestream per aprire il file e leggerlo. (Delimitato da tabulazioni). Tuttavia, ho sentito parlare del file di memoria mappata in .net 4.0. Sarebbe fare la mia legge più veloce?

Esiste un codice di esempio che fa la lettura di un file semplice e confrontare le prestazioni?

È stato utile?

Soluzione

Se i file sono sul disco e solo bisogno di essere letto in memoria, quindi utilizzando un file di memoria mappata non vi aiuterà a tutti, come è ancora necessario per leggerli dal disco.

Se tutti si sta facendo è la lettura dei file, non v'è alcun punto nella mappatura della memoria di loro.

memoria mappata file sono da utilizzare quando si sta facendo un intenso lavoro con il file (lettura, scrittura, modifica) e si vuole evitare l'IO disco.

Altri suggerimenti

Se stai solo leggere una volta, quindi file mappati in memoria non hanno senso; ci vuole ancora la stessa quantità di tempo per caricare i dati dal disco. file mappati in memoria eccellono quando molti letture casuali e / o scrive deve essere eseguita su un file dal momento che non c'è bisogno di interrompere le operazioni di lettura o scrittura con operazioni di ricerca.

Con tuo quantità di FMM dati non danno alcun vantaggio. Tuttavia, in generale, se si preoccupa di portare le prove, troverà, che la copia di file di grandi dimensioni (enorme) che utilizzano fondi comuni monetari è più veloce di chiamare ReadFile / WriteFile in sequenza. Questo è causato da diversi meccanismi utilizzati internamente in Windows per la gestione di file MMF e per IO.

Elaborazione dati in memoria sempre più veloce di fare qualcosa di simile con IO disco. Se il trattamento è sequenziale e si adattano facilmente nella memoria, è possibile utilizzare file.readlines ( ) per ottenere dati riga per riga ed elaborarli veloce senza sovraccarico di memoria disco. Qui ad esempio: Come aprire un file di testo di grandi dimensioni in C #

Controlla questa risposta troppo: Quando utilizzare file mappati in memoria

File memoria mappata non è raccomandato di leggere i file di testo. Per leggere file di testo che si sta facendo a destra con Filestream. MMP è meglio leggere dati binari.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top