Reputation: 25763
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.
Upvotes: 10
Views: 350
Reputation: 137947
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.
Upvotes: 8