分析 Scala 方法调用的标准方法是什么?
我需要的是一个方法的钩子,我可以用它来启动和停止计时器。
在Java中,我使用切面编程aspectJ来定义要分析的方法并注入字节码来实现相同的目的。
Scala 中是否有一种更自然的方法,我可以定义一堆在函数之前和之后调用的函数,而不会在过程中丢失任何静态类型?
您想在不更改要测量时序的代码的情况下执行此操作吗?如果您不介意更改代码,那么您可以执行以下操作:
def time[R](block: => R): R = {
val t0 = System.nanoTime()
val result = block // call-by-name
val t1 = System.nanoTime()
println("Elapsed time: " + (t1 - t0) + "ns")
result
}
// Now wrap your method calls, for example change this...
val result = 1 to 1000 sum
// ... into this
val result = time { 1 to 1000 sum }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)