The microbench package

Microbenchmarking can be used to compare the speed of different
approaches to the same operation. Since most code is very fast, to
get accurate timing information you must run the operation many times
and then divide to get the time per operation.

This library manages the microbenchmarking process: it finds how many
iterations of a function are needed to get a good timing estimate per
iteration and prints out a human-readable "Your code takes n nanoseconds
to run, and can run n times per second".