相关疑难解决方法(0)

Scala慵懒的val的(隐藏)成本是多少?

Scala的一个便利功能是lazy val,a的评估val被延迟到必要时(首次访问时).

当然,lazy val必须有一些开销 - 在某处Scala必须跟踪该值是否已经被评估并且评估必须同步,因为多个线程可能会尝试同时第一次访问该值.

a的成本到底是什么?lazy val是否有一个隐藏的布尔标志与a关联,lazy val如果它已经被评估,是什么同步,是否有更多的成本?

另外,假设我这样做:

class Something {
    lazy val (x, y) = { ... }
}
Run Code Online (Sandbox Code Playgroud)

这是否与两个单独的lazy vals 相同x,y或者我只获得一次开销,对于该对(x, y)

performance scala lazy-evaluation

160
推荐指数
5
解决办法
2万
查看次数

标签 统计

lazy-evaluation ×1

performance ×1

scala ×1