为了方便启动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
我电脑上没有.scalarc文件,是不是要自己建立一个新的这种格式的文件,然后放进 scala/ bin / 目录中?
自己创建一个.scalarc 文件,就是普通文本文件。文件名和路径也可以随意,只要指定完整路径即可。
scala -i /path/.scalarc
如果硬盘不是ssd的话,加入启动文件后repl的启动会有些慢
没内置函数吗, clojure 用 time 宏很方便. julia 也是