2010-08-03 16 views
15

Zastanawiałem się, jak działa niezmienna mapa F # względem standardowego słownika.F # FSharpMap vs wydajność słownika

Piszę funkcję liczenia (dla każdego zestawu przyrostowych wartości wyszukiwania linii) do użycia w dużych plikach z milionami linii i tysiącami elementów.

Co z wykorzystaniem pamięci?

Dzięki

Odpowiedz

17

Zastanawiałem się, w jaki sposób F # niezmienna Mapa wykonać przed standardowego słownika.

Zobacz Visual F# 2010 for Technical Computing strony 241-242 "Optymalizacja: używaj zmiennych struktur danych". Pokazuje, że Dictionary działa 5-40 × szybciej niż Map w bardzo podobnym ustawieniu zliczania częstotliwości na ints w zależności od liczby unikalnych kluczy.

Ogólnie, czysto funkcjonalne struktury danych, takie jak Map, są nie tylko wyjątkowo wolne w przypadku szeregowym, ale także niszczą skalowalność całych programów równoległych. Ostatnio podałem a lecture.

BTW, nie zapomnij o funkcji Seq.countBy!

Powiązane problemy