मैंने हाल ही में .NET 4 कचरा कलेक्टर का बेंचमार्क किया है, जो कई धागे से गहन रूप से आवंटित है। जब आवंटित मानों को किसी सरणी में दर्ज किया गया था, तो मैंने अपेक्षा की कोई स्केलेबिलिटी नहीं देखी थी (क्योंकि सिस्टम एक साझा पुरानी पीढ़ी के लिए सिंक्रनाइज़ पहुंच के लिए संघर्ष करता है)। हालांकि, जब आवंटित मूल्यों को तत्काल त्याग दिया गया था, तो मुझे कोई स्केलेबिलिटी देखने के लिए भयभीत नहीं था!.NET 4 कचरा कलेक्टर की मापनीयता
मुझे उम्मीद थी कि अस्थायी मामला लगभग रैखिक रूप से स्केल करने की उम्मीद है क्योंकि प्रत्येक धागे को नर्सरी जीन 0 को साफ करना चाहिए और किसी भी साझा संसाधनों के लिए बिना किसी संघर्ष के शुरू करना चाहिए (पुरानी पीढ़ियों तक कुछ भी नहीं बचा है और कोई एल 2 कैश मिस नहीं है क्योंकि जीएन 0 आसानी से एल 1 में फिट बैठता है कैश)।
उदाहरण के लिए, this MSDN article says:
तुल्यकालन मुक्त आवंटन एक मल्टीप्रोसेसर प्रणाली पर, प्रबंधित ढेर की पीढ़ी 0 धागा प्रति एक क्षेत्र का उपयोग कर कई स्मृति एरेनास में विभाजित है। यह कई थ्रेड आवंटन को एक साथ करने की अनुमति देता है ताकि ढेर तक विशेष पहुंच की आवश्यकता न हो।
क्या कोई मेरी खोजों को सत्यापित कर सकता है और/या मेरी भविष्यवाणियों और अवलोकनों के बीच इस विसंगति को समझा सकता है?
परिभाषित करें कि "कोई स्केलेबिलिटी" से आपका क्या मतलब है। –
आप अपनी सटीक पद्धति को बेहतर तरीके से पोस्ट करते हैं, जो आपने मापा है, आप कैसे मापते हैं और मूल्यों को मापते हैं। –
मैं यहां अनुमान लगा रहा हूं, लेकिन शायद मैं जॉन हैरोप एन-कोर कंप्यूटर पर अपना परीक्षण चला रहा था और एन = 1 से एन धागे के साथ अपना बेंचमार्क कर रहा था। स्केलिंग तब है जब बेंचमार्क की गति एन के साथ बदलती है। –