Me gusta escribir código realmente legible en Java. Para eso utilizo el patrón de construcción y tengo muchos métodos estáticos. Pero en algún momento llamé o encadené muchos métodos, así que se me ocurrió esta pregunta: ¿tiene algún problema de rendimiento que requiera muchos métodos?¿Cómo afecta la llamada al método el rendimiento en Java?
Respuesta
Lo que hace el método tiene un efecto mucho mayor que la llamada al método en sí. Esta es una optimización pre-madura que se le aconsejaría evitar.
No tiene idea de cómo las optimizaciones de tiempo de ejecución integradas en la propia JVM afectarán el rendimiento. Serán mucho más inteligentes que tus intentos.
Escriba su aplicación, perfórela y vea si hay mejoras obvias que pueda hacer. Repita hasta que el rendimiento sea aceptable.
Hablando en general: no realmente.
Sin embargo, un caso en el que puede proporcionar una cantidad significativa de sobrecarga innecesaria es cuando se realiza una gran llamada recursiva. Si este es el caso y el rendimiento es un problema, debe considerar un enfoque de programación dinámica o implementar su propia pila.
De lo contrario, sus métodos deben ser razonablemente complejos en su lógica para compensar cualquier golpe de rendimiento obtenido por ella.
¿Tiene alguna evidencia para respaldar su reclamo sobre llamadas recursivas grandes? [Lo siguiente implica lo contrario] (http://www.ahmadsoft.org/articles/recursion/index.html) – nerdytenor
@nerdytenor: Sí, lo hago por experiencia personal (no lo aburriré con los detalles y en su lugar lo animo a establecer un punto de referencia usted mismo si tiene alguna duda). Lea la parte inferior de la publicación que ha vinculado a la que explica la discrepancia de rendimiento. Aquí hay una comparación más precisa (en el mismo sitio): http://www.ahmadsoft.org/articles/recursion/ubuntu.html – tskuzzy
+1 para el enlace – nerdytenor
La legibilidad casi siempre es el camino a seguir. Existe un impacto en el rendimiento de las llamadas a funciones, pero el código no legible probablemente sufrirá otros problemas de implementación que tendrán un mayor impacto en el rendimiento.
Use la palabra clave final cuando corresponda, de modo que sugiera alinear para estas funciones.
Una situación en la que no desea utilizar muchas llamadas de función son bucles estrechos. Algo que ocurre cientos de miles de veces. Y generalmente estos lugares se pueden optimizar al final si se necesita optimizar el software.
acuerde aquí, y reitere: a menos que esté haciendo cientos de miles de llamadas dentro de unos segundos, esto no es algo de lo que deba preocuparse. –
- 1. ¿La ofuscación afecta el rendimiento?
- 2. En SQL, ¿cómo afecta el uso de DISTINCT al rendimiento?
- 3. z-index, ¿cómo afecta el rendimiento?
- 4. ¿Cómo afecta la cláusula IN el rendimiento en Oracle?
- 5. ¿Cómo afecta un registro de transacciones grande al rendimiento?
- 6. Java 7 Operación Diamante en llamada al método
- 7. ¿Qué es el aliasing y cómo afecta el rendimiento?
- 8. ¿El número de columnas afecta el rendimiento de la consulta?
- 9. ¿El tamaño de la tabla afecta el rendimiento de INSERTAR?
- 10. Ver anotaciones Java en una llamada al método
- 11. ¿Por qué el orden de JIT afecta el rendimiento?
- 12. ¿Cómo puedo interceptar la llamada al método en ruby?
- 13. La llamada al método definido CI_Controller :: Controlador()
- 14. ¿Cómo afecta la sugerencia del índice SQL al rendimiento de la consulta?
- 15. ¿Cómo afecta la codificación de caracteres predeterminada de la plataforma al rendimiento multiplataforma
- 16. ¿La cantidad de espacios de nombres afecta el rendimiento?
- 17. ¿La colocación de un bloque try-catch afecta el rendimiento?
- 18. Cómo la coherencia de la memoria caché afecta el rendimiento en este caso
- 19. ¿Qué significa esta llamada al método java .execute()?
- 20. ¿Cómo afecta la verbosidad de los identificadores al rendimiento de un programador?
- 21. jQuery $ .get llamada al método en Controller
- 22. C++ ¿Cómo afecta la palabra clave mutable al rendimiento del contenedor?
- 23. ¿El tamaño de ensamblado .NET afecta el rendimiento?
- 24. ¿El uso de funciones anónimas afecta el rendimiento?
- 25. llamada al método indefinido Método DateTime :: add en php
- 26. Devolución de llamada al método en el modelo diferente
- 27. ¿El uso de un marco PHP afecta el rendimiento?
- 28. Java - Método de llamada al inicio en el hilo: ¿cómo se dirige a la ejecución de la interfaz de Runnable()?
- 29. La llamada al método Spring @Transaction por el método dentro de la misma clase, ¿no funciona?
- 30. Rendimiento de rendimiento en Java
Si usted, que está utilizando el código, no sabe si existe un impacto medible y grave en el rendimiento, ¿cómo deberíamos saberlo? –