Я задавался вопросом, как неизменная Карта F# работает против стандартного Словаря.
Я пишу функцию количества (для каждого набора инкремента поиска строки) для использования на больших файлах с миллионами строк и тысячами элементов.
Что относительно использования памяти?
Спасибо
Мне было интересно, как F# immutable Map работает против стандартного Dictionary.
Смотрите Visual F# 2010 для технических вычислений страницы 241-242 "Оптимизация: Использование изменяемых структур данных". Показано, что Dictionary
работает на 5-40× быстрее, чем Map
в очень похожей настройке подсчета частот на ints как функции количества уникальных ключей.
В целом, чисто функциональные структуры данных, такие как Map
, не только чрезвычайно медленны в последовательном случае, но и разрушают масштабируемость целых параллельных программ. Недавно я прочитал лекцию об этом.
BTW, не забывайте, что существует функция Seq.countBy
!