Herramientas de creación de perfiles de C++

Sheeraz Gul 16 febrero 2024
Herramientas de creación de perfiles de C++

Este tutorial muestra algunos de los mejores generadores de perfiles para C++.

Herramientas de creación de perfiles de C++

La elaboración de perfiles nos permite saber en qué parte nuestro programa está gastando tiempo. Es un proceso paso a paso donde:

  1. Primero, compilamos y vinculamos nuestro programa con la creación de perfiles.
  2. Luego, ejecutamos nuestro programa, generando un archivo de datos.
  3. Luego, ejecutamos una herramienta de creación de perfiles para analizar los datos del perfil.

Hay muchas herramientas de generación de perfiles disponibles para C++; este tutorial demuestra algunas de las mejores herramientas de generación de perfiles para C++.

Perfilador GNU

GNU profilers es un software omnipresente y gratuito para la creación de perfiles de C++. Se abrevia como gprof, que puede producir resultados en GUI con la ayuda de IDE.

El gprof también tiene los mismos tres pasos:

  1. Compile y vincule el programa con la creación de perfiles.
  2. Ejecute el programa.
  3. Ejecute gprof para analizar los datos del perfil.

El gprof tiene un resumen de comandos que incluye las siguientes opciones:

  1. Opciones de salida
  2. Opciones de análisis
  3. Opciones misceláneas
  4. Opciones obsoletas
  5. Symspecs

El gprof es compatible con Windows, macOS y sistemas C++ basados en Linux.

Donde gprof proporciona diferentes formas de interpretar la salida, que incluye el perfil plano, el gráfico de llamadas y el perfilado línea por línea, lo que hace que gprof sea una de las mejores herramientas de creación de perfiles para C++, pero tiene algunos retrocede, que a veces incluye inexactitud en la salida y, a veces, es incompatible con Unix. Visite este enlace para ver la documentación completa.

Perfilador Intel VTune

Intel VTune Profiler también es una herramienta de perfil gratuita para diferentes idiomas. Los lenguajes incluyen C, C++, C#, Python, código OpenCL™, Fortran, GoLang, Java, Assembly, .Net, etc.

Intel Vtune Profiler se utiliza para optimizar el rendimiento del sistema y de la aplicación; también optimiza la configuración del sistema para Almacenamiento, IoT, nube, medios, etc.

Algunas otras características principales de esta herramienta son:

  1. Optimiza el rendimiento del sistema y de la aplicación y evita el estrangulamiento térmico y relacionado con la energía.
  2. Intel Vtune Profiler puede obtener los datos del sistema en forma de grano grueso durante un período prolongado; también puede obtener el resultado detallado asignado al código fuente.
  3. Intel Vtune Profiler puede ajustar el rendimiento de la aplicación, incluida la posición de aceleración.

Intel Vtune Profiler es compatible con sistemas C++ basados en Windows, macOS y Linux.

Intel VTune Profiler se puede descargar desde este enlace.

Herramientas de perforación de Google

El perftools es un generador de perfiles de Google que se puede usar para C++, que no necesita instrumentación de código. Las gperftools son una colección de implementaciones malloc() de alto rendimiento y subprocesos múltiples.

Esta herramienta se distribuye bajo la licencia BSD, incluido el generador de perfiles de montón y CPU. Esta herramienta está disponible en todos los sistemas basados en UNIX.

Las principales características de esta herramienta son:

  1. Tiene una salida gráfica muy agradable.
  2. Puede realizar perfiles de memoria, comprobación de fugas y perfiles de CPU.
  3. Se considera una de las herramientas más rápidas para la creación de perfiles.
  4. No necesita instrumentación de código.

Aunque esta herramienta es rápida, otras herramientas son más detalladas; esta herramienta solo es compatible con sistemas basados en Unix. Las perftools se pueden descargar desde este enlace.

Valgrind

Valgrind es una colección de herramientas que incluye las herramientas de creación de perfiles Cachegrind y Callgrind, que se pueden utilizar para C++. El callgrind es una extensión del cachegrind.

El cachegrind se utiliza para la creación de perfiles de caché. Esta herramienta realiza la simulación en el caché de la CPU, lo que identificará con precisión las fallas de caché en nuestro código.

El cachegrind puede identificar el número de referencias de memoria, errores de caché e instrucciones ejecutadas para cada línea de nuestro código, donde estas operaciones se realizan con resúmenes por función, por módulo y de programa completo. El cachegrind se puede usar con cualquier idioma, pero hace que el programa se ejecute más lento.

Como se mencionó anteriormente, el callgrind es una extensión de cachegrind. Puede funcionar de manera similar a cachegrind con funciones adicionales, incluidos los gráficos de llamadas.

El callgrind se incluyó con cachegrind en una visualización llamada KCacheGrind, que puede proporcionar una mejor visión general de los datos recopilados por callgrind. Esta herramienta también se puede utilizar para visualizar la herramienta cachegrind.

Valgrind es compatible con los sistemas macOS, Linux y WSL. El Valgrind se puede descargar desde aquí.

Sistema de rendimiento TAU

El sistema de rendimiento TAU es un kit de herramientas de rastreo portátil y una herramienta de creación de perfiles para el análisis de rendimiento de programas escritos en C, C++, Fortran, Java, Python y UPC.

El TAU, abreviado como Tunning Analysis and Utilities, se utiliza para recopilar información de rendimiento utilizando la instrumentación de funciones, bloques básicos, declaraciones, métodos y muestreo basado en eventos.

Estas son algunas de las características principales de TAU:

  1. La TAU soporta todas las funciones de C++.
  2. El TAU proporciona la selección de grupos de perfilado que nos ayuda a organizar y controlar la instrumentación.
  3. La TAU proporciona una herramienta de visualización de perfiles, paraprof, que se puede utilizar para los resultados gráficos de los resultados del análisis de rendimiento.
  4. Con el TAU, podemos identificar rápidamente la puntuación de rendimiento.
  5. La TAU también puede generar las trazas de eventos, que se pueden mostrar con herramientas como las herramientas de visualización vampir, paravar o Jumpshot.

El TAU Performance System se puede descargar desde este enlace.

AMD µProf

AMD proporciona un software de creación de perfiles, μProf, que se puede utilizar para analizar la aplicación x86 de las plataformas Windows, Linux y FreeBSD. Esta herramienta ayuda al desarrollador a comprender los límites del rendimiento de la aplicación y puede utilizarse para mejorar el rendimiento.

AMD μProf proporciona las siguientes características principales:

  1. Proporciona un análisis de rendimiento utilizado para identificar el cuello de botella de rendimiento de la aplicación.
  2. También proporciona métricas de desempeño del sistema de análisis y monitoreo del sistema.
  3. También proporciona perfiles de energía, que pueden monitorear las características térmicas y de energía del sistema.
  4. También proporciona perfiles remotos, que se pueden usar para conectarse a un sistema Linux remoto desde el sistema host de Windows para activar la recopilación de datos desde el sistema remoto y luego informarlo a la GUI.
  5. También proporciona un análisis de energía que se puede utilizar para identificar el punto de acceso energético de las ventanas de las aplicaciones.

AMD μProf es compatible con Linux y Windows. Para obtener más información sobre AMD μProf y descargar, vaya a este enlace.

Hemos descrito algunas de las mejores herramientas de generación de perfiles para C++. Estas herramientas no son solo herramientas proporcionadas para la creación de perfiles de C++; también hay algunas otras herramientas con diferentes características; aquí está la lista:

  1. Coz – Perfilador Causal
  2. perfeccionar
  3. Xperf
  4. Instrumentos Apple
  5. DTrace
  6. Mucho sueño
  7. Óptica
  8. Analizador de rendimiento de Oracle
  9. Mapa ARM
  10. SmartBear AQTime
  11. Operfil
  12. Código Resplandor
  13. Perfilador fácil
Sheeraz Gul avatar Sheeraz Gul avatar

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

LinkedIn Facebook