2010-05-14 9 views
7

another question में, Stephen C का कहना है:सी # में कमजोर संदर्भों का उपयोग करने के लिए जीसी की लागत?

एक दूसरी चिंता कमजोर संदर्भों का उपयोग के साथ क्रम ओवरहेड्स देखते हैं कि है। स्पष्ट लागत कमजोर संदर्भ बनाने और कॉलिंग उन पर पहुंचने वाले हैं। एक कम स्पष्ट लागत यह है कि जीसी रनों के हर बार महत्वपूर्ण अतिरिक्त काम किया जाना चाहिए।

तो कमजोर रेफरी के जीसी की कीमत क्या है? इसे करने के लिए क्या अतिरिक्त काम करने की ज़रूरत है, और यह कितना बड़ा सौदा है? मैं कुछ शिक्षित अनुमान बना सकता हूं, लेकिन वास्तविक यांत्रिकी में रूचि रखता हूं।

उत्तर

3

कृपया जेफरी रिचटर के लेख को Memory Management in .NET पर जांचें, इसे चीजों को थोड़ा साफ़ करना होगा।

+2

+1 अच्छा लेख। तो मूल रूप से कमजोर संदर्भों का ओवरहेड तभी होता है जब आपके पास बहुत कमजोर संदर्भ होते हैं क्योंकि जीसी को यह जांचना पड़ता है कि क्या कमजोर संदर्भित लक्ष्य को साफ किया जा रहा है, यदि ऐसा है, तो कमजोर संदर्भ का लक्ष्य निर्धारित करें शून्य। किसी भी मामले में, अगर किसी के पास उनके आवेदन में बहुत कमजोर संदर्भ हैं तो मुझे यह अजीब लगेगा। आम तौर पर आपको किसी की आवश्यकता नहीं होती है। – Stormenet

+0

@Stormenet Well, ['ConditionalWeakTable (T)'] का उपयोग कर (https://msdn.microsoft.com/en-us/library/dd287757 (v = vs.110) .aspx) बिना मेटाडेटा ऑब्जेक्ट पर मेटाडेटा को संभालने के लिए अपनी मेटाडेटा तालिका में प्रविष्टियों को साफ करने के बारे में चिंता करने के लिए जब उन मनमानी वस्तुओं को एकत्रित कचरा मिलता है तो कभी-कभी काफी आसान हो सकता है। आप जो कर रहे हैं उसके आधार पर, मुझे लगता है कि उनमें से बहुत * बनाना बहुत आसान होगा। – binki

+0

लिंक टूटा हुआ/नीचे – springy76