Estoy trabajando en una aplicación y un enfoque de diseño implica un uso extremadamente intenso del instanceof
operador. Si bien sé que el diseño OO generalmente trata de evitar el uso instanceof
, esa es una historia diferente y esta pregunta está puramente relacionada con el rendimiento. Me preguntaba si hay algún impacto en el rendimiento? Es tan rápido como==
?
Por ejemplo, tengo una clase base con 10 subclases. En una sola función que toma la clase base, verifico si la clase es una instancia de la subclase y realizo alguna rutina.
Una de las otras formas en que pensé en resolverlo fue usar una primitiva entera "type id" en su lugar, y usar una máscara de bits para representar las categorías de las subclases, y luego simplemente hacer una comparación de máscara de bits de las subclases "type id" a un máscara constante que representa la categoría.
¿ instanceof
La JVM está optimizada de alguna manera para que sea más rápida que eso? Quiero seguir Java pero el rendimiento de la aplicación es crítico. Sería genial si alguien que ha estado en este camino antes podría ofrecer algún consejo. ¿Estoy buscando demasiado o me estoy enfocando en lo incorrecto para optimizar?