scala的诊断方法(3) 在repl下统计方法的执行时间

为了方便启动repl时自动加载,把这段函数定义放在.scalarc文件中:

hongjiang@whj-mbp ~ % cat .scalarc

def time[T](code : => T) =  {
    val t0 = System.nanoTime : Double
    val res = code
    val t1 = System.nanoTime : Double
    println("Elapsed time " + (t1 - t0) / 1000000.0 + " msecs")
    res
}

把scala命令alias一下,每次启动时自动load启动脚本:

alias scala='scala -deprecation -feature -i ~/.scalarc'

用time方法测试执行时间

// 测试代码块的执行时间
scala> time{ var sum=0; for(i<-0 to 1000000) sum=sum+i; println(sum) }
    1784293664
    Elapsed time 71.57888 msecs

scala> def fib(n:Int):Int = if (n<2)  n else fib(n-1) + fib(n-2);

// 测试方法的执行时间  
scala> time( fib(40) )
    Elapsed time 407.36 msecs
    res3: Int = 102334155

scala的诊断方法(3) 在repl下统计方法的执行时间》上有3个想法

  1. 我电脑上没有.scalarc文件,是不是要自己建立一个新的这种格式的文件,然后放进 scala/ bin / 目录中?

    • 自己创建一个.scalarc 文件,就是普通文本文件。文件名和路径也可以随意,只要指定完整路径即可。
      scala -i /path/.scalarc
      如果硬盘不是ssd的话,加入启动文件后repl的启动会有些慢

发表评论

电子邮件地址不会被公开。 必填项已用*标注