【发布时间】:2012-02-17 00:31:26
【问题描述】:
我正在尝试制作一个计时器来测量范围的执行时间。我可以通过手动启动计时器来做到这一点,然后在作用域的末尾放置一些东西来停止计时器,但这是工作量的两倍。在 C++ 中,您可以创建一个计时器类,该类在调用其析构函数时进行评估,并在某些内容超出范围时调用析构函数,因此计时器“自动”处理自己。由于 Scala 是一种托管语言,一个实例在垃圾收集之前不会消失,因此依赖该方法在计时器方面基本上是无用的,除非我试图计算一些东西在被垃圾收集之前存在多长时间。
下面是一个示例,如果在离开作用域时进行自动评估,制作计时器的代码会是什么样子:
def someMethod(someVar: Int) {
val myTimer: ScopeTimer = ScopeTimer(startImmediately = true)
// Do some stuff
// Do more stuff
10 // Return some int value here
}
由于方法返回10,myTimer 将离开作用域并触发。
在 Scala 中,是否有任何简单的方法可以制作计时器来评估这样的范围的执行时间?
【问题讨论】: