如何测量scala程序的运行时间?

pbwdgjma  于 2021-05-30  发布在  Hadoop
关注(0)|答案(2)|浏览(569)

我有一个简单的烫伤程序来转换我在本地模式下使用com.twitter.bolding.tool执行的一些数据。

  1. val start = System.nanoTime
  2. val inputPaths = args("input").split(",").toList
  3. val pipe = Tsv(inputPaths(0))
  4. // standard pipe operations on my data like .filter( 'myField ), etc.
  5. .write(Tsv(args("output")))
  6. println("running time: " + (System.nanoTime - start) / 1e6 + "ms")

我想测量程序的运行时间。我在代码的开头和结尾编写了测量时间的标准技巧,但是结果是~100ms,而实际时间接近60s。最好的方法是什么?谢谢!

13z8s7eq

13z8s7eq1#

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

  1. time hadoop jar myjob.jar ...
mwg9r5ms

mwg9r5ms2#

一种让我奏效的方法是使用微观基准。
目前对于scala程序,您可以使用http://scalameter.github.io/
它考虑了gc以及预热jvm。我认为应该在本地模式下在单个jvm上工作。

相关问题