Encuentre las líneas de código más costosas con Amazon CodeGuru
Amazon CodeGuru es una herramienta para desarrolladores basada en aprendizaje automático que brinda recomendaciones inteligentes para mejorar la calidad del código e identificar las líneas de código más costosas de una aplicación. Realiza revisiones de código automatizadas y proporciona recomendaciones para el rendimiento de las aplicaciones.
Amazon CodeGuru Reviewer
Amazon CodeGuru Reviewer detecta problemas en el código y recomienda formas de solucionarlos. Por ejemplo, CodeGuru Reviewer detecta discrepancias con las prácticas recomendadas para el uso de las API y los SDK de AWS y, también, identifica los problemas de simultaneidad, la fuga de recursos, las vulnerabilidades de seguridad y la validación incorrecta de entrada. Para comenzar a revisar el código, puede asociar repositorios de código existentes en GitHub, GitHub Enterprise o AWS CodeCommit con CodeGuru.
CodeGuru Reviewer analiza automáticamente las solicitudes de extracción en el código fuente en busca de problemas graves y proporciona recomendaciones inteligentes para resolver los defectos de código directamente dentro de la solicitud de extracción. CodeGuru Reviewer identifica los problemas de calidad del código en nueve categorías amplias:
• Prácticas recomendadas de AWS: uso correcto de las API de AWS (por ejemplo, sondeo, paginación)
• Prácticas recomendadas de Java y Pyton (disponible en la previsualización): uso correcto de las características comunes del lenguaje y de la biblioteca de Java y Python
• Simultaneidad: detecta falta de sincronización que resulta en una funcionalidad incorrecta o en una sincronización excesiva, lo que produce problemas de rendimiento
• Bloqueos: comprueba la coordinación entre subprocesos paralelos
• Fuga de recursos: gestión adecuada de los recursos (por ejemplo, liberación de las conexiones de la base de datos)
• Exposición de información confidencial: exposición de información de identificación personal (por ejemplo, registro de los detalles de las tarjetas de crédito)
• Errores de código comunes: defectos difíciles de encontrar, como la falta de creación de un cliente para cada invocación de Lambda
• Clonación de código: identifica código duplicado que se puede consolidar para un mejor mantenimiento del código
• Validación de entradas: busca datos con formatos erróneos o malintencionados de fuentes que no son de confianza

En resumen, CodeGuru proporciona al equipo de desarrollo las herramientas para mantener un estándar de creación de código alto en el proceso de desarrollo de software.
Usted también puede ver todas las revisiones de código en la página de la consola “Code reviews” (Revisiones de código) (en la sección del revisor). La página enumera toda la información sobre revisiones de código, como el estado de la revisión, el repositorio, la cantidad de recomendaciones y más. Los usuarios hacen clic en la revisión de código completada correctamente para ver detalles de recomendaciones, buscar recomendaciones y consultar la cantidad de líneas analizadas. Además, pueden brindar comentarios sobre las recomendaciones de CodeGuru si hacen clic en los iconos de pulgar hacia arriba y pulgar hacia abajo situados debajo de la recomendación.


Con CodeGuru, usted puede obtener recomendaciones de revisión de código automatizadas para los repositorios asociados en todo el código (no solo cambios graduales a través de solicitudes pull) en una ramificación de código específica. Los casos de uso de clientes incluyen hacer recomendaciones de revisión de código durante la migración de código, diligencia debida de código e iniciativas de mantenimiento de código periódico. Navegue hacia la pestaña “Repository Analysis” (Análisis de repositorio) en la página “Code Reviews” (Revisiones de código) para activar un nuevo análisis en un repositorio completo.

Con la solicitud pull y el análisis completo del repositorio disponible, los clientes que se incorporan al CodeGuru Reviewer pueden 1) asociar su repositorio, 2) iniciar un análisis completo del repositorio, 3) analizar continuamente las solicitudes de extracción con cambios de código graduales y 4) realizar una nueva exploración periódica del repositorio para garantizar la calidad del código.
CodeGuru Reviewer ayuda a mejorar la seguridad del código y brinda sugerencias para prácticas recomendadas. Utiliza aprendizaje automático para analizar el flujo de datos de la fuente al destino y en varias funciones para detectar vulnerabilidades de seguridad difíciles de detectar. El detector de seguridad admite Java hasta Java 11 e identifica varias categorías de código, como las siguientes:

Amazon CodeGuru Profiler
El generador de perfiles de Amazon CodeGuru siempre busca optimizar el rendimiento de las aplicaciones, identifica las líneas de código más “costosas” y recomienda formas de corregirlas para reducir la utilización de la CPU, disminuir los costos de informática y mejorar el rendimiento de las aplicaciones. Por ejemplo, CodeGuru Profiler puede identificar si la aplicación consume una capacidad excesiva de la capacidad de CPU en una rutina de registro en lugar de que se ejecute en una lógica empresarial principal.
CodeGuru Profiler está diseñado para ejecutarse de manera continua en la fase de producción con una mínima sobrecarga, lo que significa que puede dejarlo encendido. De esta forma, puede generar perfiles y solucionar problemas en la aplicación mediante patrones reales de tráfico de clientes y detectar con facilidad problemas de rendimiento. Si su aplicación de producción experimenta cualquier tipo de problemas, puede solucionarlos con rapidez gracias a los datos del generador de perfiles y las recomendaciones. CodeGuru Profiler también proporciona un resumen del montón para que pueda identificar los objetos que están utilizando la memoria en exceso en cualquier momento determinado.
CodeGuru Profiler analiza de forma continua las características de latencia, de uso del montón y de utilización de la CPU de la aplicación para mostrar en qué parte de la aplicación se utiliza la mayoría de los ciclos o se pierde más tiempo. El análisis de la CPU y la latencia se presenta en un gráfico de llama interactivo que permite comprender fácilmente las rutas de código que consumen la mayoría de los recursos, verificar que la aplicación funcione como se espera y descubrir cuáles áreas se pueden optimizar aún más.

Los gráficos de llama permiten visualizar el rendimiento de su aplicación al agrupar las pruebas de seguimiento de pila durante un periodo de tiempo para ofrecer una imagen precisa del comportamiento de la aplicación durante ese tiempo. Puede usar un gráfico de llama para comprender fácilmente las rutas que consumen la mayoría de los recursos, verificar que la aplicación funciona como se espera y descubrir cuáles áreas se pueden optimizar aún más. Por ejemplo, el método UploadGreyImage gasta 134 868 USD por año y esto consume 10,22 % del tiempo real. De tal forma que, si no tenía previsto perder tanto tiempo, debe investigar.
El análisis del uso del montón se presenta mediante una visualización de resumen del montón, en la que se muestra los objetos que están asignados a su montón, ya sea sus propias clases de dominio o las que pertenecen a las bibliotecas o al SDK.

El resumen del montón permite visualizar todos los objetos asignados en el montón durante un periodo de tiempo determinado junto con su tamaño, recuento y serie temporal. Por ejemplo, puede ver en el gráfico de serie temporal que a las 16:20 hay dos objetos que comienzan a crecer de manera significativa (java.util.LinkedHashMap$Entry y java.land.UUID), que indican una posible fuga de memoria. Si esta tendencia en ascenso continúa y no se controla, podría ocasionar una situación de falta de memoria.
El generador de perfiles de CodeGuru identifica automáticamente los problemas de rendimiento en la aplicación y ofrece recomendaciones inteligentes sobre cómo solucionarlos. Estas recomendaciones lo ayudan a identificar y optimizar los métodos más costosos o que requieren más recursos dentro del código sin necesidad de ser un experto en ingeniería de rendimiento. Estas optimizaciones le permiten disminuir el costo de la infraestructura, reducir la latencia y mejorar la experiencia general del usuario final.

Cuando Amazon CodeGuru Profiler detecta oportunidades para optimizar el rendimiento de las aplicaciones, describe los motivos por los que recomienda un cambio, las causas del problema, la manera de resolverlo y la parte del código en la que el problema impacta la aplicación. Esta recomendación muestra que esta línea de código onerosa genera costos de 182 160 USD al año y tiene un impacto del 2,97 % en el uso de la CPU. Si sigue los pasos de resolución sugeridos, podrá ahorrar hasta 182 160 USD
El generador de perfiles de Amazon CodeGuru analiza de forma continua los perfiles de la aplicación en tiempo real y detecta anomalías en el comportamiento y los métodos de la aplicación. Cada anomalía se supervisa en el informe de recomendaciones. Además, se pueden ver las series temporales de cómo se comporta la latencia del método a través del tiempo con las anomalías resaltadas de forma clara. Si está configurado, también se enviará una notificación de Amazon SNS al detectar una anomalía nueva.

CodeGuru Profiler está diseñado para funcionar de manera constante en la fase de producción con una mínima sobrecarga, lo que significa que puede dejarlo encendido todo el tiempo con un impacto mínimo en el rendimiento de la aplicación. De esta forma, puede generar perfiles y solucionar problemas en la aplicación mediante patrones reales de tráfico de clientes y detectar con facilidad problemas de rendimiento que podrían no identificarse en el entorno de prueba.

Visite la página de precios de Amazon CodeGuru.

Obtenga acceso instantáneo a la capa gratuita de AWS.

Comience a crear con Amazon CodeGuru en la consola de administración de AWS.