我想知道是否有意義使用lazy val
來防止不必要的堆分配,從而使GC的工作更容易一些。舉例來說,我在編寫代碼,像這樣的習慣:scala lazy val:在垃圾收集器上輕鬆上手的好方法?
lazy val requiredParameterObject = new Foo {
val a = new ...
val b = new ...
// etc
}
for (a <- collection) a.someFunction(requiredParameterObject)
的這裏的想法是,通過使requiredParameterObject
懶,我的情況下保存堆分配是collection
是空的。但我想知道:lazy
的內部細節是否使這不是一個有效的表現勝利?