En la programación J2EE, ¿cuál es la diferencia entre perfilado y monitoreo?

La creación de perfiles es una técnica de desarrollo de software activa que le permite optimizar el rendimiento del software. Ejecutas tu software a través de un generador de perfiles, y generará varias estadísticas que te permitirán identificar el uso de recursos de las diferentes secciones de tu código. Puede usar esto para identificar y eliminar rápidamente los cuellos de botella de la CPU, la memoria o el almacenamiento.

Vea cómo este generador de perfiles desglosa el tiempo de ejecución y el recuento de invocación de cada método:

El monitoreo es más una técnica pasiva, utilizada para ayudar a garantizar que el software funcione como se espera al verificar / sondear su software de forma intermitente mientras se ejecuta. Cuando no es así, es de esperar que el software de monitoreo tenga registros detallados que brinden mensajes de error, conectividad de red / uso y posiblemente uso de CPU / memoria / espacio en disco a lo largo del tiempo. Puede usar el software de monitoreo para ayudar a reducir eventos o situaciones problemáticas que hacen que su software no funcione como se esperaba.

Vea cómo este software de monitoreo registra estadísticas de conectividad de red a lo largo del tiempo. También hace ping externamente al servidor web, registrando el tiempo de respuesta:

Ambos tienen buenos propósitos, y uno ciertamente puede aumentar los beneficios del otro. A menudo, el software de monitoreo detectará un problema y, al replicar el escenario que causó el problema, puede ejecutar su software con un generador de perfiles para determinar qué es lo que necesita solucionarse.

“Monitoreo” generalmente se refiere al Monitoreo del rendimiento de la aplicación (APM). Alguna discusión aquí:
¿Qué tiene de bueno el software de monitoreo de rendimiento de aplicaciones como AppDynamics y New Relic? ¿Por qué a los clientes les encanta?
¿Cuáles son algunas buenas herramientas para el monitoreo y análisis de aplicaciones Java y JVM?

En Java EE, las herramientas APM se conectan al servidor de aplicaciones Java y monitorean interfaces clave como JDBC (Java Database Connectivity) y las capas de Servlets, así como una CPU de alto nivel, Java Virtual Machine y Garbage Collection. Los APM no pueden analizar el rendimiento de la CPU y la memoria por clase o método, como lo hacen los perfiladores. Pero, dado que pueden mantenerse funcionando permanentemente y no afectan el rendimiento, tienen una visión más precisa de cómo funciona el sistema en un sistema en vivo. Por el contrario, dado que la creación de perfiles debe ser manual, generalmente es con una carga simulada, como algunos usuarios de prueba o una herramienta de prueba de carga como Apache JMeter.

More Interesting

¿Qué ingenieros de software o hackers conoces que hayan mostrado un conocimiento excepcional de Javascript? ¿Porque?

El calendario html5 de Chrome parece horrible, ¿debería seguir usando el calendario de jquery?

¿Debería unirme a una startup de análisis de datos que trabaje con la última tecnología (salario más bajo) o permanecer en una multinacional en un equipo de Operaciones / Administración (salario más alto)? Tengo 25 años, soy indio y actualmente trabajo en la MNC.

¿Por qué la GTU (Universidad Tecnológica de Gujarat) literalmente apesta?

¿Cómo ha evolucionado el trabajo de prueba de control de calidad en los últimos 10 años de la industria del software?

¿Cómo decide una cotización para un gran proyecto de software?

¿Por qué la gente de tecnología se molesta en mudarse a Silicon Valley?

¿Cómo sabes en qué idioma / tecnología usar para construir un sitio web?

¿Por qué Java está separado en Core Java y Enterprise Java (Java EE)?

¿Cuáles son algunos buenos estudios de caso sobre grandes arquitecturas de software?

¿Cuáles son las preguntas / conceptos imprescindibles para una entrevista con un ingeniero de software?

¿Cuál es la diferencia entre Apache v2.0 y la licencia MIT? ¿Cuáles son las principales consecuencias de usar el software Apache sobre MIT?

¿Cuál es el mejor software para el envío programado de correo electrónico?

¿Son realmente estresantes los trabajos de ingeniería de software o simplemente un mito?

Cómo detener el uso de datos en segundo plano en Windows