Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

234
Visualizações
¿La herencia puede afectar el rendimiento de una aplicación?

Me pregunto si el rendimiento de una aplicación podría mejorarse utilizando la mayor cantidad posible de superclases. Mi pregunta es sobre Kotlin, pero supongo que la respuesta será la misma para Java.


Digamos que tiene este esquema de herencia (la clase de la derecha es una subclase de la clase de la izquierda):
A < B < C < D < E < F < G < ... Y así sucesivamente hasta Z.

Decir que no necesita todas las cosas definidas en todas las subclases, sino solo los atributos y las funciones de la clase A. Por una razón oscura, su código usa solo la clase Z.

Mi pregunta es bastante simple: si cambia su código para usar solo la clase A en lugar de la clase Z, ¿el código tendrá un mejor rendimiento?

Gracias de antemano por sus respuestas.

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Si

"cambie su código para usar solo la clase A en lugar de la clase Z"

incluye construcción, entonces hay una respuesta trivial:

Crear y almacenar un objeto con menos atributos/campos es más económico que crear un objeto con más atributos, tanto en términos de memoria como en términos de tiempo de inicialización.

Aparte de eso, no esperaría un efecto significativo en el rendimiento.


Dicho esto, no me preocuparía por el rendimiento aquí: elija el tipo que proporcione la mejor abstracción para lo que quiere hacer con esto. Si a su código no le importa qué subclase específica está usando y no necesita ninguna de las funciones proporcionadas por las subclases, use el tipo más general. De esa manera, su código sigue siendo más flexible. Sin embargo, si su código necesita dicha funcionalidad en algún momento, es decir, tiene que introducir conversiones más adelante, entonces ha ido demasiado lejos.

over 4 years ago · Santiago Trujillo Relatório

0

La respuesta es sí. Por ejemplo, si invoca el método z.someMethod(). El Hotspot buscará primero el método en la clase Z. Si HotSpot no encuentra el método de destino, buscará el método en el padre de Z. Y continúe estos pasos hasta que encuentre el método de destino. Por lo tanto, llevará más tiempo buscar el método si la cadena de herencia es larga.

Sin embargo, HotSpot usa algo de caché para acelerar el proceso.

Llamadas virtuales HotSpot

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda