On 17 July 2012 20:45, tsuraan <tsuraan at gmail.com> wrote:
> Is there anything in Criterion that allows for a benchmark to run some
> code before or after the thing that it's timing? As an example, I'd
> like to time a bunch of database inserts, but beforehand I want to
> create the target table, and afterwards I'd like to delete it. I
> don't really care to have the time spent on the create/delete recorded
> in the test run's timing, if that's possible to do.
See the second argument of "defaultMainWith"
http://hackage.haskell.org/packages/archive/criterion/0.6.0.0/doc/html/Criterion-Main.html#v:defaultMainWith.
The Criterion monad supports running arbitrary IO actions via "liftIO".
/ Thomas