       benchmark.setup()
 
       # pre-run for optimization
-      benchmark.run Math.max 1, Math.floor repeat * 0.25 # TODO: support asynchronous ...
+      prerun = if repeat is 1 then 1 else Math.max 100, Math.floor repeat * 0.25
+      benchmark.run prerun # TODO: support asynchronous ...
 
       start = process.hrtime()
 


      elapsed = process.hrtime start

      info = { benchmark, repeat, elapsed, result, original:original.info[index] }
      if report then @reportResult info
      if store  then @storeResult info



  run: (options) ->

    old    = options.old
    repeat = options.repeat ? 1
    report = options.report is true
    store  = options.store is true
