Es cierto que las colecciones genéricas funcionan mejor que las colecciones no genéricas para los tipos de valores. (es decir, List vs. ArrayList).Dónde se almacenan los tipos de valores en (C#) Colecciones genéricas
¿Pero por qué es eso, aparte del paso de boxeo-unboxing? ¿Dónde se almacenan los objetos de tipo de valor una vez agregados a la colección? En colecciones no genéricas, se guardarán en cajas y se almacenarán en montón, ¿qué hay de diferente en genéricos?
Para el mismo número de enteros, sizeof (Lista) ~ = sizeof (int []) ~ = 1/2 sizeof (ArrayList en x86) ~ = 1/3 sizeof (ArrayList en x86-64). Además, la ubicación de los datos apesta a ArrayList debido al boxeo y produce una fragmentación de memoria superior a la necesaria. –