के दौरान जेन 2 को बढ़ावा दिया गया है, मेरा प्रोग्राम जेन 2 को बहुत उच्च दर (लगभग 1 एमबी/सेक) पर स्मृति को बढ़ावा दे रहा है और जब जेन 2 संग्रह होता है तो यह प्रदर्शन हिट का कारण बनता है। प्रत्येक प्रयास को मैंने समझने के लिए बनाया कि कौन सी वस्तुओं को बढ़ावा दिया गया था असफल रहा - मुख्य रूप से इस तथ्य के कारण कि जब मैंने विंडबग में 2 डंप खोले, तो जिस स्मृति से जीन 2 आकार की वृद्धि हुई थी, उसे "फ्री" के रूप में चिह्नित किया गया था। इससे मुझे संदेह हुआ कि पिन की गई समस्याएं समस्या पैदा कर रही हैं लेकिन परफॉर्म आंकड़े बताते हैं कि पिन की गई वस्तुओं में से # बहुत कम है (लगभग 2-4)।नेट कचरा कलेक्टर - देखें कि रनटाइम
मैं अब कोशिश करने के बारे में क्या सोच रहा हूं यह किसी भी तरह से यह पता चलता है कि कौन सी ऑब्जेक्ट्स को रनटाइम में जेन 2 में बढ़ावा दिया जाता है। क्या ऐसा करने के लिए कोई तरीका है?
मुझे संदेह है कि आप अपने डिस्पोजेबल ऑब्जेक्ट्स का निपटान नहीं करते हैं। सबसे अवांछित वस्तुएं उनके फाइनलजर को चलाएंगी और वहां से निपटान करेंगी। फाइनलाइजर्स जीसी संग्रह ब्लॉक [सेक्शन "कैसे अंतिमकरण संग्रह को प्रभावित करता है"] (http://msdn.microsoft.com/en-us/library/ms973837.aspx#dotnetgcbasics_topic5)। –
क्या आप बड़ी वस्तुओं को आवंटित कर रहे हैं? बड़ी वस्तु ढेर पर आवंटित AFAIK ऑब्जेक्ट्स जेन 2 पर तुरंत जाते हैं। – CodesInChaos