サーチ…
メモ機能
Memoizingは基本的にメソッドの結果をキャッシュする方法です。これは、メソッドが同じ引数で頻繁に呼び出され、結果の計算に時間がかかるためにパフォーマンスが向上する場合に便利です。
Groovy 2.2から、@ @Memoized
アノテーションでメソッドをアノテーションできます。
次のクラスを想像してみてください。
class MemoDemo {
def timesCalculated = 0
@Memoized
def power2(a) {
timesCalculated++
a * a
}
}
今度は、このメソッドの最初の呼び出し時に、以前に呼び出されていない番号がある場合、メソッドが実行されます。
assert power2(2) == 4
assert timesCalculated == 1
しかし、同じ引数を指定して再度呼び出すと:
assert power2(2) == 4
assert timesCalculated == 1
timesCalculated
は変更されませんが、メソッドは同じ結果を返しました。しかし、それを別の引数で呼び出す:
assert power2(3) == 9
assert timesCalculated == 2
メソッドの本体が再び呼び出されます。
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow