सॉफ़्ट और प्रेत संदर्भ जावा से आते हैं, मुझे विश्वास है। एक लंबा कमजोर संदर्भ (सी # के वीक रेफरेंस कन्स्ट्रक्टर को सच है) को जावा के फैंटॉम रिफरेंस के समान माना जा सकता है। यदि सी # में सॉफ़्ट रेफरेंस का एनालॉग है, तो मुझे नहीं पता कि यह क्या है।
कमजोर संदर्भ किसी ऑब्जेक्ट के जीवनकाल का विस्तार नहीं करते हैं, इस प्रकार सभी मजबूत संदर्भ गुंजाइश से बाहर हो जाने के बाद इसे कचरा इकट्ठा करने की अनुमति मिलती है। वे बड़ी वस्तुओं को रखने के लिए उपयोगी हो सकते हैं जो प्रारंभ करने के लिए महंगी हैं, लेकिन अगर वे सक्रिय रूप से उपयोग में नहीं हैं तो कचरा संग्रह के लिए उपलब्ध होना चाहिए।
चाहे यह आपके आवेदन की स्मृति खपत को कम करने में उपयोगी होगा या नहीं, आवेदन के विनिर्देशों पर पूरी तरह से निर्भर करेगा। उदाहरण के लिए, यदि आपके पास भविष्य में लगी हुई कैश की गई वस्तुओं की एक मध्यम संख्या है जो भविष्य में पुन: उपयोग की जा सकती है या नहीं, तो कमजोर संदर्भ कैश की स्मृति खपत में सुधार करने में मदद कर सकते हैं। हालांकि, यदि ऐप बहुत बड़ी संख्या में छोटी वस्तुओं के साथ काम कर रहा है, तो कमजोर संदर्भ समस्या को और भी खराब कर देंगे क्योंकि संदर्भ वस्तुएं उतनी ही अधिक स्मृति लेती हैं।
स्रोत
2008-11-22 02:00:52
क्या आपका एप्लिकेशन विशेष रूप से कक्षा System.WeakReference का उपयोग करता है? – MusiGenesis