Cómo integrar Perf4j en una aplicación Java y generar datos de rendimiento
Cuando se encuentran problemas de rendimiento en la plataforma Java, como un uso excesivo de la CPU y una respuesta lenta del sistema, el método de análisis habitual es utilizar herramientas de creación de perfiles JVM para capturar la distribución del uso de la CPU algún tiempo antes del punto crítico del cuello de botella del sistema. Luego verifique los métodos con mayor uso de CPU. La ventaja de Perf4j es que puede rastrear y recopilar estadísticas continuamente sobre la eficiencia de ejecución del código funcional de interés, realizar análisis en profundidad de métodos que tienen diferencias significativas entre las dos versiones y encontrar problemas lo antes posible en el desarrollo. ciclo. Perf4j también se puede utilizar en un entorno de producción, desde las primeras etapas de operación, para utilizar sus datos estadísticos como monitoreo a largo plazo del rendimiento del sistema y los indicadores de salud.
Escenarios de aplicación preferidos para Perf4j: invocación de código nativo Java (JNI) Sistemas distribuidos, implementación de clústeres arquitectura orientada a servicios (SOA) Invocación de método remoto (RMI)
Los desarrolladores deben Problemas de rendimiento con Los métodos locales, los métodos remotos y los servicios web están aislados para evitar que interfieran con el análisis de la propia aplicación Java. El registro es la forma más sencilla; los sistemas que utilizan arquitectura distribuida o implementación de clústeres son relativamente complejos. Los diferentes entornos de red, las diferencias en el hardware y los sistemas operativos básicos, las diferencias en los recursos y las configuraciones en los hosts virtuales, etc., dificultan la adopción de un sistema unificado. para monitorear las métricas de rendimiento a nivel de código. El registro se puede agregar fácilmente a varios programas y es el método de menor costo en términos de recursos y tiempo. Perf4j proporciona una herramienta de conversión de formato CSV y los desarrolladores pueden utilizar herramientas de terceros para resumir y analizar fácilmente los resultados estadísticos.
Integrado en aplicaciones
A continuación se describirá cómo utilizar la API proporcionada por Per4j de dos maneras. En proyectos reales, la selección debe basarse de manera flexible en el marco procesal existente y los fines de seguimiento. Además, se deben tomar medidas adicionales para garantizar que Perf4j funcione correctamente con el propio sistema de registro del servidor de aplicaciones WebSphere.
Segmentos de código de tiempo
En Perf4j, org.perf4j.StopWatch es la herramienta básica en toda la API. Este es un temporizador bien encapsulado. StopWatch se puede incrustar en cualquier parte de su código. Este enfoque a menudo descompone métodos complejos, lo que ayuda a identificar la causa raíz del problema. Su uso específico se presenta a continuación a través del Listado 1 y el Listado 2.
Métodos de sincronización
Para evitar el estrecho acoplamiento entre Perf4j y el sistema, sin agregar código de terceros adicional al programa, también puede usar programación orientada a aspectos (AOP) a través de simple Configura el método especificado para que se programe dinámicamente en tiempo de ejecución. Perf4j proporciona un buen soporte para herramientas AOP de uso común como AspectJ y Spring AOP. Este artículo presenta principalmente el método de configuración para integrar Per4j con este último.
Primero asegúrese de que el proyecto ya tenga el paquete Jar como se muestra en la Figura 1: