不要なヒープ割り当てを防ぐために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
の内部の詳細は、これを効果的なパフォーマンスの勝利にしないでください?