Я пытаюсь понять интернирование строк, и почему это не работает в моем примере. Точка примера показывает, что в примере 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();