private static void measure(Benchmark run)
  {
	for (int i = 0; i < WARMUP_REPEATS; i++)
	{
	  run.run();
	}

	long time = 0;
	for (int i = 0; i < TEST_REPEATS; i++)
	{
	  final long startT = System.nanoTime();
	  run.run();
	  time += System.nanoTime() - startT;
	}
	System.out.printf("%1$s: %2$,d nannos/run (total: %3$s ms)\n", run.getClass().getSimpleName(), time / TEST_REPEATS,
	    TimeUnit.NANOSECONDS.toMillis(time));
  }