He oído hablar mucho sobre la creación de perfiles. ¿Qué es todo esto? Por lo que yo entiendo, este es algún tipo de medición del rendimiento, pero alguien puede elaborar esto más claramente para que un novato pueda captar la idea. Además, uso Eclipse IDE para mi programa Java. ¿Puedo perfilar mi programa usando Eclipse IDE? ¿Cuáles son los factores que deben considerarse al elaborar perfiles (me refiero a las mejores prácticas)?¿De qué se trata el perfilado y cómo puedo perfilar mi programa Java?
Respuesta
La generación de perfiles básicamente muestra la frecuencia con la que se ejecuta una determinada línea de código y cuánto tiempo se pasó en ella (en comparación con otras líneas). Esto hace que sea fácil identificar la ubicación donde su código pasa la mayor parte del tiempo.
También hace posible encontrar lugares donde su código pasa mucho tiempo sin hacer nada: este es el signo típico de cache miss y aquí es donde debería estar activo.
Normalmente, los programas pasan mucho tiempo (digamos, 90%) en un solo lugar. Lamentablemente, encontrar este lugar sin perfiles no es posible. La conjetura a menudo sale mal. Por lo tanto, si optimiza en el lugar equivocado, esto no ayudará en absoluto: si el tiempo total dedicado a esa línea es solo del 10%, su código solo será un 10% más rápido (¡en el mejor de los casos!). Sin embargo, si logra eliminar la llamada que toma el 90% del tiempo, su programa recibirá diez veces más rápido.
Esto, en pocas palabras, es perfilar.
Eclipse ofrece capacidades de creación de perfiles integradas y me han dicho que son bastante buenas, pero como no las conozco, que alguien más las responda.
Por lo poco de investigación que he hecho sobre el perfil de Java con Eclipse, puede usar JProfiler. En realidad, nunca fui mucho más allá de instalarlo y tener una nariz rápida.
YourKit es un excelente generador de perfiles para Java y se integrará muy bien con Eclipse. Definitivamente vale la pena el dinero y generalmente se cree que es el mejor perfilador de Java disponible.
Konrad tiene razón, pero la creación de perfiles abarca también otros aspectos de su programa, como el consumo de memoria.
- 1. ¿Qué es perfilar?
- 2. Java: ¿Cómo puedo ver qué partes de mi código están ejecutando más? (perfilado)
- 3. ¿Cómo puedo perfilar la memoria del programa multiproceso en Python?
- 4. ¿Cómo puedo perfilar un programa multiproceso en Python?
- 5. ¿Cómo puedo realizar pruebas de mutación de mi programa Java?
- 6. ¿De qué se trata _GLIBCXX_USE_NANOSLEEP?
- 7. MethodHandle: ¿de qué se trata?
- 8. Rendimiento y perfilado multiproceso
- 9. Cómo perfilar el programa en la plataforma Linux sin reconstruir?
- 10. PSGI: ¿Qué es y de qué se trata?
- 11. Cómo perfilar mi aplicación C++ en Linux
- 12. ¿Cómo importo jar a mi programa java?
- 13. Perfilado Consumo de energía en ARM para el programa C
- 14. ¿Cómo puedo acelerar mi programa Perl?
- 15. Cómo perfilar el uso de memoria y las prestaciones de un programa openMPI en C
- 16. Perfilado de memoria PHP
- 17. ¿Qué es el cortocircuito y cómo se usa cuando se programa en Java?
- 18. Perfilado de subprocesos de Python
- 19. Perfilado para analizar los accesos de memoria de bajo nivel de mi programa
- 20. ¿Qué usas para el desarrollo web y por qué crees que se trata?
- 21. ¿Cómo puedo usar el tiburón para perfilar mi aplicación de iPhone?
- 22. ¿Cómo puedo perfilar el código Ruby en 1.9.2?
- 23. Cómo perfilar el uso de la memoria de un programa en C
- 24. trata de señales asíncronas en multihilo Programa
- 25. PyPy: ¿De qué se trata todo esto?
- 26. ¿Cómo puedo ejecutar el código java que ha sido pegado en mi programa?
- 27. ¿Cómo puedo perfilar una aplicación con SQLAlchemy?
- 28. Semántica de movimiento: ¿de qué se trata?
- 29. ¿Cómo puedo mejorar el diseño de mi programa y la técnica de resolución de problemas?
- 30. ¿de qué se trata la serialización?