def bench(participants=participants, benchmarks=benchmarks,
          bench_time=BENCH_TIME):
    """Do you even lift?"""

    mcs = [p.factory() for p in participants]
    means = [[] for p in participants]
    stddevs = [[] for p in participants]

    # Have each lifter do one benchmark each
    last_fn = None
    for benchmark_name, fn, args, kwargs in benchmarks:
        logger.info('')
        logger.info('%s', benchmark_name)

        for i, (participant, mc) in enumerate(zip(participants, mcs)):

            # FIXME: set before bench for get
            if 'get' in fn.__name__:
                last_fn(mc, *args, **kwargs)

            sw = Stopwatch()
            while sw.total() < bench_time:
                with sw.timing():
                    fn(mc, *args, **kwargs)

            means[i].append(sw.mean())
            stddevs[i].append(sw.stddev())

            logger.info(u'%76s: %s', participant.name, sw)
        last_fn = fn

    return means, stddevs
Do you even lift?