Joachim Breitner
Joachim Breitner

Reputation: 25763

Run Haskell benchmarks on inputs of varying size

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

Answers (1)

Don Stewart
Don Stewart

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

Related Questions