c # string interning
Estou tentando entender a cadeia de caracteres interna e por que parece não funcionar no meu exemplo. O objetivo do exemplo é mostrar que o Exemplo 1 usa menos (muito menos memória), pois deve ter apenas 10 strings na memória. No entanto, no código abaixo, ambos os exemplos usam aproximadamente a mesma quantidade de memória (tamanho virtual e conjunto de trabalho).
Por favor, informe por que o exemplo 1 não está usando muito menos memória? obrigado
Exemplo 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();
Exemplo 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();