F # FSharpMap против эффективности словаря

Мне было интересно, как неотъемлемая карта F # действует против стандартного словаря.

Я пишу функцию count (для каждого набора инкремента поиска строки) для использования в больших файлах с миллионами строк и тысяч элементов.

Как насчет использования памяти?

Спасибо

Ответы

Ответ 1

Мне было интересно, как неотъемлемая карта F # действует против стандартного словаря.

См. Visual F # 2010 для технических вычислений стр. 241-242 "Оптимизация: использование изменяемых структур данных". Показывает Dictionary, работающий на 5-40 × быстрее, чем Map в очень похожей настройке подсчета частот на ints в зависимости от количества уникальных клавиш.

В целом, чисто функциональные структуры данных, такие как Map, не только чрезвычайно медленны в серийном случае, но и разрушают масштабируемость целых параллельных программ. Я недавно дал лекцию об этом недавно.

Кстати, не забывайте, что есть функция Seq.countBy!