Run Haskell benchmarks on inputs of varying size
benchmarking, graph, haskell, haskell-criterion, time-complexity
Solution
e.g. to see the algorithmic complexity?
There's a package for that:
http://hackage.haskell.org/package/complexity
However, I typically use QuickCheck to drive testing at random data sizes, then plot the result.
Problem
Often I’d like to compare the runtime performance of multiple implementations of the same function. For individual inputs, criterion is a good tool. But what is an easy way to plot the performance of the code over varying input size, e.g. to see the algorithmic complexity? Ideally, I pass the library a value of type `Benchmarkable r => [(String, Int -> r)]`, i.e. a list of size-dependent benchmarks, and the library will automatically find a the sensible input range for each value and creates a nice plot from it.