मैं स्ट्रिंग इंटर्निंग को समझने की कोशिश कर रहा हूं और मेरे उदाहरण में ऐसा क्यों प्रतीत नहीं होता है। उदाहरण का बिंदु उदाहरण 1 को कम (बहुत कम स्मृति) का उपयोग करना है क्योंकि इसमें केवल स्मृति में 10 स्ट्रिंग होनी चाहिए। हालांकि, दोनों उदाहरणों के नीचे दिए गए कोड में लगभग समान मात्रा में स्मृति (वर्चुअल आकार और कार्य सेट) का उपयोग करें।सी # स्ट्रिंग इंटर्निंग
कृपया सलाह दें कि उदाहरण 1 बहुत कम स्मृति का उपयोग क्यों नहीं कर रहा है? धन्यवाद
उदाहरण 1:
IList<string> list = new List<string>(10000);
for (int i = 0; i < 10000; i++)
{
for (int k = 0; k < 10; k++)
{
list.Add(string.Intern(k.ToString()));
}
}
Console.WriteLine("intern Done");
Console.ReadLine();
उदाहरण 2:
IList<string> list = new List<string>(10000);
for (int i = 0; i < 10000; i++)
{
for (int k = 0; k < 10; k++)
{
list.Add(k.ToString());
}
}
Console.WriteLine("intern Done");
Console.ReadLine();
इस सवाल का एक तुम कल पूछा की तरह एक बहुत कुछ नहीं है? http://stackoverflow.com/questions/2502522/string-interning-should-this-code-only-create-10-strings-in-memory –
हां एक जैसे, लेकिन – CodingThunder