पैकेज, रिपॉज़िटरी और ऐप श्रेणियाँ खोजें

पैकेज विवरणv3.0.0

memoize

जब इनपुट पिछले कॉल से बदले नहीं हुए हों, तो फ़ंक्शन कॉल का कैश्ड परिणाम लौटाता है।

AndroidiOSWebmacOSWindowsLinux
30-दिन डाउनलोड
78 हज़ार
लाइक
33
Pub अंक
130

पैकेज इंस्टॉल करें

flutter pub add memoize

पैकेज अवलोकन

सार्वजनिक जानकारी से बना चयन मार्गदर्शन। केवल संदर्भ हेतु।

मेमोइज़ पैकेज एक डार्ट उपकरण है जो फंक्शन कॉल के परिणामों को उनके इनपुट पैरामीटर्स के आधार पर कैश करता है। जब किसी फंक्शन को पिछले कॉल के समान तरीके से दोहराया जाता है, तो यह फिर से गणना करने के बजाय कैश किए गए परिणाम को वापस करता है, जिससे महंगे या बार-बार बुलाए जाने वाले फंक्शन के प्रदर्शन में सुधार होता है। यह पैकेज एंड्रॉइड, आईओएस, वेब, मैकओएस, विंडोज और लिनक्स सहित सभी प्रमुख प्लेटफॉर्म को समर्थन देता है। यह पैकेज प्रतिक्रियाशील या राज्य-आधारित एप्लिकेशन में विशेष रूप से उपयोगी है जहाँ दोहराए गए गणनाओं को बचाया जा सकता है। यह pub.dev के माध्यम से फ्लटर प्रोजेक्ट में आसानी से एकीकृत होता है।

उपयोग

  • महंगी गणनाओं को कैश करना
  • स्थिर इनपुट के साथ UI रेंडरिंग को अनुकूलित करना
  • अवस्था प्रबंधन में कार्यक्षमता में सुधार
  • आवश्यकता से अधिक API कॉल को कम करना
  • डेटा-भारी एप्लिकेशन में प्रतिक्रियाशीलता को बढ़ाना
  • एनिमेशन में दोहराए गए गणनाओं से बचें

मुख्य विशेषताएँ

  • इनपुट समानता के आधार पर स्वचालित कैशिंग
  • एसिंक और सिंक फंक्शन के लिए समर्थन
  • प्लेटफॉर्म के अनुकूलता
  • हल्का और एकीकरण में आसान
  • कस्टम कंपेयरेटर के माध्यम से जटिल प्रकार का एम्बेडेड समर्थन
  • आवश्यक न्यूनतम बॉयलरप्लेट कोड

इनके लिए उपयुक्त

  • Flutter ऐप में प्रदर्शन को अनुकूलित करने वाले विकासकर्मी
  • अक्सर पुनर्गणना के साथ राज्य प्रबंधन
  • भारी गणना तर्क वाले ऐप्स
  • तेज़ अपडेट की आवश्यकता वाले प्रतिक्रियाशील UI
  • कार्यात्मक प्रोग्रामिंग पैटर्न का उपयोग करने वाली टीमें

विचार योग्य बातें

  • कैश के आकार के साथ मेमोरी उपयोग बढ़ता है
  • आवश्यकता होने पर कैश अमान्यता को हस्तचालित रूप से संभाला जाना चाहिए
  • प्रभावों वाले कार्यों के लिए उपयुक्त नहीं
  • कस्टम बराबरी के बिना परिवर्तनीय इनपुट ऑब्जेक्ट्स के साथ अच्छी तरह से काम नहीं कर सकता है
  • प्रदर्शन में सुधार फ़ंक्शन लागत और कॉल आवृत्ति पर निर्भर करता है

मूल README

संबंधित सोर्स रिपॉज़िटरी के मूल README का स्नैपशॉट। नवीनतम सामग्री के लिए रिपॉज़िटरी देखें।

Memoize

memoize returns cached result of function call when inputs were not changed from previous invocation.

Warning

memoize_dart now supports dart 2.12.0 and null safety since 3.0.0 version.

For 2.0.0 we drop func as dependency. Because it archived and doesn't support dart2.

If you need dart-1.24.3 use 1.4.0 version

Examples

memo1, memo2, ... memo10 compare arguments with == operator:

import 'dart:math';
import 'package:memoize/memoize.dart';

void main() {
  var rect1 = new Rectangle<int>(0, 0, 10, 10);
  var rect2 = new Rectangle<int>(0, 0, 10, 10);

  var func = memo1((Rectangle<int> a) => a.width * a.height);

  print(func(rect1));
  print(func(rect2)); // cached result is returned
}

imemo1, imemo2, ... imemo10 compare arguments with identical function:

import 'dart:math';
import 'package:memoize/memoize.dart';

void main() {
  var rect1 = new Rectangle<int>(0, 0, 10, 10);
  var rect2 = new Rectangle<int>(0, 0, 10, 10);

  var func = imemo1((Rectangle<int> a) => a.width * a.height);

  print(func(rect1));
  print(func(rect1)); // cached - same object instance
  print(func(rect2)); // not cached - different object instance
}

memo0 caches result on first call and can be used as lazy cache:

import 'dart:math';
import 'package:memoize/memoize.dart';

void main() {
  var func = memo0(() => new Rectangle<int>(0, 0, 10, 10));

  print(func());
  print(func()); // cached - same object instance
}

Contributors

श्रेणियाँ

सोर्स रिपॉज़िटरी

इस पैकेज का उपयोग करने वाले प्रोजेक्ट