summaryrefslogblamecommitdiff
path: root/src/compiler/scala/tools/nsc/MainBench.scala
blob: f01de0cbe118ea14913e52f113cfd54e993d0727 (plain) (tree)
1
2
3
4
5
6
7
                            
                                




                          





                                                          
 
                                                   
 
                                          
 

                
 




                                            
                                                                                                 












                                                  
/* NSC -- new Scala compiler
 * Copyright 2005-2013 LAMP/EPFL
 * @author  Martin Odersky
 */

package scala.tools.nsc

import scala.reflect.internal.util.Statistics

/** The main class for NSC, a compiler for the programming
 *  language Scala.
 */
object MainBench extends Driver with EvalLoop {

  lazy val theCompiler = Global(settings, reporter)

  override def newCompiler() = theCompiler

  val NIter = 50
  val NBest = 10

  override def main(args: Array[String]) = {
    val times = new Array[Long](NIter)
    var start = System.nanoTime()
    for (i <- 0 until NIter) {
      if (i == NIter-1) {
        theCompiler.settings.Ystatistics.default.get foreach theCompiler.settings.Ystatistics.add
        Statistics.enabled = true
      }
      process(args)
      val end = System.nanoTime()
      val duration = (end-start)/1000000
      println(s"${duration}ms")
      times(i) = duration
      start = end
    }
    val avg = times.sorted.take(NBest).sum / NBest
    println(s"avg shortest $NBest times ${avg}ms")
  }
}