2010-08-03 14 views
15

Mi chiedevo come si comporti la mappa immutabile F # rispetto al dizionario standard.F # FSharpMap vs performance del dizionario

Sto scrivendo una funzione di conteggio (per ogni set di incrementi di ricerca riga) da utilizzare su file di grandi dimensioni con milioni di righe e migliaia di elementi.

E l'utilizzo della memoria?

Grazie

risposta

17

mi chiedevo come fa il F # immutabile Mappa eseguire contro il dizionario standard.

Vedere Visual F# 2010 for Technical Computing pagine 241-242 "Ottimizzazione: utilizzare strutture dati mutabili". Mostra un Dictionary che esegue 5-40 × più veloce di un Map nell'impostazione molto simile di conteggio delle frequenze su ints in funzione del numero di tasti univoci.

In generale, le strutture di dati puramente funzionali come Map non sono solo estremamente lente nel caso seriale ma distruggono la scalabilità di interi programmi paralleli. Ho dato a lecture di recente.

BTW, non dimenticare che c'è una funzione Seq.countBy!