Запустите тесты Haskell для входных данных различного размера

Часто я хотел бы сравнить производительность во время выполнения нескольких реализаций одной и той же функции. Для отдельных входов критерий является хорошим инструментом.

Но что является простым способом отобразить производительность кода при различном размере ввода, например, чтобы увидеть алгоритмическую сложность?

В идеале я передаю библиотеке значение типа Benchmarkable r => [(String, Int -> r)]т. е. список зависимых от размера тестов, и библиотека автоматически найдет разумный диапазон ввода для каждого значения и создаст из него хороший график.

1 ответ

например, чтобы увидеть алгоритмическую сложность?

Для этого есть пакет:

http://hackage.haskell.org/package/complexity

Тем не менее, я обычно использую QuickCheck, чтобы провести тестирование с произвольным размером данных, а затем отобразить результат.

Другие вопросы по тегам