? He encontrado algunas reglas (recomendaciones) para usar concreto List y Dictionary en lugar de IList e IDictionary, dado que las pruebas de muestra muestran acceso a través de la interfaz. un poco más lento. Por ejemplo, agregar 10000 valores a una lista y luego hacer un conteo en la lista 1 billón de veces muestra que hacerlo a través de una interfaz es 28 veces más lento que hacerlo a través de la clase concreta. es decir, a través de la clase concreta se necesitan 80 ms, a través de la interfaz se tardan 2800 ms, lo que muestra lo lento que es a través de la interfaz. Dado esto, sería razonable usar la clase concreta. ¿Hay alguna razón por la cual la interfaz es mucho más lenta (probablemente más dirigida a alguien que sabe más sobre las funciones internas de .net).¿Es mejor para el rendimiento utilizar el tipo de hormigón en lugar de la interfaz
gracias scott
Lo el lenguaje tiene un rendimiento tan miserable con las interfaces? – dicroce
IList ilst = lst; for (int i = 0; i <10000; i ++) {lst.Add (i); } int count = 0; GC.Collect(); for (int i = 0; i <1000000000; i ++) {count = lst.Count; } –
user455095
Rara vez se verá una diferencia de rendimiento de un factor 100. Dudo la corrección de sus medidas de rendimiento. ¿Puedes mostrarnos tu código? – Steven