Статистическая производительность чисто функциональных карт и множеств

Учитывая спецификацию структуры данных, такую ​​как чисто функциональная карта с известными границами сложности, нужно выбирать между несколькими реализациями. Существует некоторый фольклор о том, как выбрать правильный, например, деревья с красными черными считаются, как правило, более быстрыми, но деревья AVL имеют лучшую производительность при рабочих нагрузках со многими поисками.

  • Существует ли систематическое изложение (опубликованная статья) этого знания (в отношении множеств/карт)? В идеале я бы хотел, чтобы статистический анализ выполнялся на реальном программном обеспечении. Например, можно сделать вывод, что существует N типичных видов использования карт и список распределения вероятностей ввода для каждого.

  • Существуют ли систематические тесты, которые проверяют карту и устанавливают производительность для разных распределений входов?

  • Существуют ли реализации, которые используют адаптивные алгоритмы для изменения представления в зависимости от фактического использования?

Ответ 1

Это в основном темы исследований, и результаты обычно даются в виде выводов, тогда как статистические данные скрыты. Однако можно провести статистический анализ своих собственных данных.

Для эталонных тестов лучше ознакомьтесь с деталями реализации.

Третья часть вопроса - очень субъективный вопрос, и фактические намерения никогда не могут быть известны во время реализации. Тем не менее, такие языки, как perl, делают все возможное для реализации высоко оптимизированных решений для каждой операции.

Возможно, вам помогут: Чисто функциональные структуры данных Криса Окасаки http://www.cs.cmu.edu/~rwh/theses/okasaki.pdf