我有一个简单的烫伤程序来转换我在本地模式下使用com.twitter.scalding.Tool执行的一些数据。
val start = System.nanoTime
val inputPaths = args("input").split(",").toList
val pipe = Tsv(inputPaths(0))
// standard pipe operations on my data like .filter( 'myField ), etc.
.write(Tsv(args("output")))
println("running time: " + (System.nanoTime - start) / 1e6 + "ms")
我想测量一下程序的运行时间。我在代码的开头和结尾写了测量时间的标准技巧,然而,结果是~100 ms,而实际时间接近60 s。做这个的最好方式是什么?谢谢!
答案 0 :(得分:1)
一种对我有用的方法是使用Micro Benchmarks。
目前,您可以使用Scala程序 http://scalameter.github.io/
它考虑了GC以及预热JVM。我认为应该在单个JVM上以本地模式工作。
答案 1 :(得分:1)
我找到了一个简单的答案。运行作业时,在hadoop命令之前添加time关键字。
time hadoop jar myjob.jar ...