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