Duplicar posible:
Why are interface method invocations slower than concrete invocations?¿Cuál es la clase o Interfaz rápida, abstracta?
Recientemente tuve la oportunidad de aparecer en una entrevista en la que entrevistador le preguntó cuál es el más rápido entre los clase abstracta y interfaz. Aunque me confundí con la pregunta, pero respondí Interfaz principalmente porque pensé que el concepto de enlace tardío puede causar un retraso en el rendimiento en la clase abstracta. Después de explorar esta misma pregunta en la web, llegué a saber que los métodos abstractos son más rápidos, aunque de acuerdo con algunos blogs Los métodos de interfaz son más rápidos. Estaba un poco confundido, así que pensé en hacer esta pregunta para tener una comprensión correcta de cuál es más rápido y por qué con una buena razón.
De acuerdo con lo siguiente, la clase de Resumen es rápida pero no hay una razón justificada para ello. http://www.codeproject.com/Articles/11155/Abstract-Class-versus-Interface
muy tentado de repetir la primera regla dos veces, como en todas las citas de "la primera regla de Fight Club" ... – tucuxi
Un problema con esa filosofía es que no revelará si los factores del mundo real pueden causar una general- enfoque superior para a veces realizar mucho peor que uno generalmente inferior.Por ejemplo, dada la elección entre dos fragmentos de código, uno de los cuales requiere un par de cuatro accesos vtable y uno de los cuales requiere asignar 32 bytes adicionales de basura, es posible que el que genera más basura sea generalmente más rápido, pero podría terminan siendo mucho más lentos si hay una gran cantidad de basura gen2 que se toca entre los ciclos de recopilación gen0. – supercat
mi punto es que optimizar las manos en todas partes es un uso mucho más pobre de su tiempo que optimizar * solo donde realmente cuenta *. Primero, busca lo que está caliente y optimiza * eso *. De lo contrario, estás perdiendo tiempo y esfuerzo. – tucuxi