खोज…


ज्ञापन कार्य

मेमोइज़िंग मूल रूप से विधि परिणाम कैश करने का एक तरीका है। यह तब उपयोगी हो सकता है जब एक विधि को अक्सर समान तर्कों के साथ बुलाया जाता है और परिणाम की गणना में समय लगता है, इसलिए प्रदर्शन में वृद्धि होती है।

ग्रूवी 2.2 से शुरू, तरीकों को @Memoized एनोटेशन के साथ @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