Запустите тесты Haskell для входных данных различного размера
Часто я хотел бы сравнить производительность во время выполнения нескольких реализаций одной и той же функции. Для отдельных входов критерий является хорошим инструментом.
Но что является простым способом отобразить производительность кода при различном размере ввода, например, чтобы увидеть алгоритмическую сложность?
В идеале я передаю библиотеке значение типа Benchmarkable r => [(String, Int -> r)]
т. е. список зависимых от размера тестов, и библиотека автоматически найдет разумный диапазон ввода для каждого значения и создаст из него хороший график.
1 ответ
например, чтобы увидеть алгоритмическую сложность?
Для этого есть пакет:
http://hackage.haskell.org/package/complexity
Тем не менее, я обычно использую QuickCheck, чтобы провести тестирование с произвольным размером данных, а затем отобразить результат.