Estoy tratando de entender el interrogatorio de cadenas y por qué no parece funcionar en mi ejemplo. El objetivo del ejemplo es mostrar que el Ejemplo 1 usa menos (mucha menos memoria) ya que solo debería tener 10 cadenas en la memoria. Sin embargo, en el siguiente código ambos ejemplos usan aproximadamente la misma cantidad de memoria (tamaño virtual y conjunto de trabajo).C# string interning
Por favor, ¿por qué el ejemplo 1 no usa mucha menos memoria? Gracias
Ejemplo 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();
Ejemplo 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();
¿No es esta pregunta mucho como la que usted pidió ayer? http://stackoverflow.com/questions/2502522/string-interning-should-this-code-only-create-10-strings-in-memory –
sí, pero no es lo mismo – CodingThunder