2

我有一个简单的烫伤程序来转换我在本地模式下使用 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 毫秒,而实际时间接近 60 秒。做这个的最好方式是什么?谢谢!

4

2 回答 2

1

一种对我有用的方法是使用 Micro Benchmarks。

目前对于 Scala 程序,您可以使用 http://scalameter.github.io/

它考虑了 GC 以及预热 JVM。我认为应该在单个 JVM 上以本地模式工作。

于 2014-12-02T17:14:36.523 回答
1

我找到了一个简单的答案。运行作业时在 hadoop 命令前添加 time 关键字。

time hadoop jar myjob.jar ...
于 2015-02-18T17:07:36.697 回答