Esta es una lista de herramientas de análisis de rendimiento para su uso en el desarrollo de software .
Propósito general, independiente del idioma
Las siguientes herramientas funcionan basándose en archivos de registro que se pueden generar desde varios sistemas.
- time (Unix) : se puede usar para determinar el tiempo de ejecución de un programa, contando por separado el tiempo del usuario frente al tiempo del sistema y el tiempo de la CPU frente al tiempo del reloj. [1]
- timem (Unix) : se puede usar para determinar el tiempo del reloj de pared, el tiempo de la CPU y la utilización de la CPU de manera similar a la hora (Unix), pero admite numerosas extensiones.
- Admite informes de tamaño máximo del conjunto de residentes , fallas de página mayores y menores, cambios de contexto de prioridad y voluntarios a través de getrusage .
- Admite procesos de muestreo en sistemas de soporte para informar métricas como el tamaño del conjunto residente basado en páginas , el tamaño de la memoria virtual, bytes de lectura y bytes de escritura, etc.
- Admite la recopilación de contadores de hardware cuando se construye con soporte PAPI .
Múltiples idiomas
Las siguientes herramientas funcionan para varios idiomas o binarios.
Nombre / Fabricante | SO | Compilador / Idioma | Que hace | Licencia |
---|---|---|---|---|
MAPA del brazo | Linux | Aplicaciones C, C ++, Fortran / Fortran90 y Python. | Perfilador de rendimiento. Muestra E / S, comunicación, uso de operación de punto flotante y costos de acceso a la memoria. Admite aplicaciones multiproceso y multiproceso, como las que tienen paralelismo MPI o OpenMP y escala a recuentos de nodos muy altos. | Propiedad |
AppDynamics de Cisco | Linux, Windows, iOS, Android, Azure, AWS, AIX | .NET, Java, PHP, HTML5, ObjectiveC / iOS, Java / Android, C / C ++, Apache, Nginx, Cassandra, bases de datos | Consulte Gestión del rendimiento de la aplicación . | Propiedad |
AQtime de SmartBear Software | Ventanas | Aplicaciones .NET 1.0 a 4.0 (incluidas aplicaciones ASP.NET), aplicaciones Silverlight 4.0, aplicaciones Windows de 32 y 64 bits, incluidas C, C ++, Delphi para Win32 y funciones VBScript y JScript | Perfilador de rendimiento y conjunto de herramientas de depuración de memoria / recursos. | Propiedad |
CodeAnalyst de AMD | Linux, Windows | C, C ++, Objective C .NET, Java (funciona a nivel ejecutable) | AMD uProf reemplaza a CodeAnalyst y CodeXL para la creación de perfiles de CPU y energía en procesadores AMD.
| Libre / de código abierto (GPL) o propietario |
AMD CodeXL de AMD | Linux, Windows | Para la creación de perfiles y la depuración de GPU: OpenCL. | Un conjunto de herramientas para la creación de perfiles de GPU, depurador de GPU y analizador de kernel estático. | Libre / código abierto (MIT) |
AMD uProf de AMD | Linux, Windows | C, C ++, .NET, Java, Fortran | Generador de perfiles de código, crea perfiles basados en muestreo en procesadores AMD. | Propiedad |
DevPartner de Borland / Micro Focus | .NET, Java | Conjunto de pruebas que detecta y diagnostica automáticamente defectos de software y problemas de rendimiento. | Propiedad | |
DTrace de Sun Microsystems | Solaris, Linux, BSD, macOS | Marco integral de seguimiento dinámico para solucionar problemas de kernel y aplicaciones en sistemas de producción en tiempo real. | Libre / código abierto ( CDDL ) | |
dynamoRIO de RIO | Linux, Windows | Marco de instrumentación binaria dinámica para el desarrollo de herramientas de análisis de programas dinámicos . | Libre / código abierto - BSD | |
Dynatrace | Linux, Windows, iOS, Android, Azure, AWS, AIX, Solaris, HP / UX, zOS, zLinux | .NET, Java, PHP, HTML5, Ajax (para sitios web), Objective-C / iOS, Java / Android, C / C ++, CICS, Apache, Nginx, Cassandra, Hadoop, MongoDB, HBase | Consulte Gestión del rendimiento de la aplicación . | Propiedad |
Extrae | Linux, Android | Principalmente C / C ++ / Fortran, pero puede perfilar cualquier aplicación que se vincule con bibliotecas paralelas compatibles (por ejemplo, MPI4PY) | Herramienta de análisis de rendimiento de HPC con visor y utilidades de apoyo. Diseñado principalmente para aplicaciones paralelas con soporte para MPI, OpenMP, CUDA, OpenCL, pthreads y OmpS. Las características adicionales incluyen seguimiento de funciones de usuario y captura de eventos de hardware a través de PAPI. | Libre / código abierto - LGPL-2.1 |
Reactor de fusión | Linux, Windows, macOS, AWS, Azure, Google Cloud | Java, ColdFusion, Apache, MongoDB Funciona con cualquier lenguaje compatible con JVM | Realiza la gestión del rendimiento de aplicaciones y el análisis de rendimiento y causa raíz. Combina APM y herramientas de estilo de desarrollador de bajo nivel; también incluye un depurador y perfiladores de Java, memoria, subprocesos y CPU. | Propiedad |
GlowCode | Ventanas | Aplicaciones de 64 y 32 bits, C, C ++, .NET y DLL generadas por cualquier compilador de lenguaje. | Generador de perfiles de memoria y rendimiento que identifica funciones que requieren mucho tiempo y detecta fugas y errores de memoria. | Propiedad |
gprof | Linux / Unix | Cualquier idioma admitido por gcc | Varias herramientas con muestreo combinado y creación de perfiles de gráfico de llamadas. Un conjunto de herramientas de visualización, herramientas VCG , utiliza la interfaz de dibujo de gráfico de llamadas (CGDI) para interactuar con gprof. Otra herramienta de visualización que interactúa con gprof es KProf . | Libre / código abierto: la versión BSD es parte de 4.2BSD y la versión GNU es parte de GNU Binutils (por GNU Project ) |
Instana | Linux, Windows, iOS, Android, Azure, AWS, AIX, Solaris, HP / UX, zOS, zLinux | .NET, .Net core, Java, PHP, Ruby, Python, Crystal, Scala, Kotlin, Clojure, Haskell, Node.js, navegador web, Apache, Nginx, Cassandra, Hadoop, MongoDB, Elasticsearch, Kafka | Consulte Gestión del rendimiento de la aplicación . | Propiedad |
Instrumentos con Xcode | Mac OS | Aplicaciones C, C ++, Objective-C / C ++, Swift, Cocoa. | Instrumentos muestra una línea de tiempo que muestra cualquier evento que ocurra en la aplicación, como la variación de la actividad de la CPU, la asignación de memoria y la actividad de la red y los archivos, junto con gráficos y estadísticas. El grupo de eventos se monitorea seleccionando instrumentos específicos de: Actividad de archivo, Asignaciones de memoria, Perfilador de tiempo, actividad de GPU, etc. Para el impacto del ejecutable en todo el sistema: son útiles el seguimiento del sistema, el uso del sistema, el uso de la red, el registro de energía, etc. | Libre. Propiedad. Incluido con Xcode, que también es gratuito. |
Asesor de Intel | Linux y Windows. Visor solo en macOS. | C, C ++, Data Parallel C ++ y Fortran | Una colección de herramientas de diseño y análisis: optimización de vectorización (SIMD), creación de prototipos de subprocesos, análisis automatizado de la línea del techo, modelado de descarga y análisis de gráficos de flujo | Freeware y propietario. Disponible como parte de Intel oneAPI Base Toolkit . |
Kit de herramientas de seguimiento de Linux (LTT) | Linux | Requiere kernel parcheado | Recopila datos sobre bloqueo de procesos, cambios de contexto y tiempo de ejecución. Esto ayuda a identificar problemas de rendimiento en múltiples procesos o subprocesos. Reemplazado por LTTng . | GPL |
LTTng (Kit de herramientas de seguimiento de Linux de próxima generación) | Linux | Paquete de software del sistema para el seguimiento correlacionado de kernel, aplicaciones y bibliotecas. | GPL / LGPL / MIT | |
OProfile | Linux | Perfila todo lo que se ejecuta en el sistema Linux, incluidos los programas difíciles de perfilar, como los controladores de interrupciones y el propio kernel. | Generador de perfiles de muestreo para Linux que cuenta las pérdidas de caché, las paradas, las recuperaciones de memoria, etc. | Código abierto GPLv2 |
Analizador de rendimiento de Oracle Solaris Studio | Linux, Solaris | C, C ++, Fortran, Java; MPI | Perfilador de rendimiento y memoria. | Freeware patentado |
herramientas perf | Kernel de Linux 2.6.31+ | Generador de perfiles de muestreo con soporte de eventos de hardware en varias arquitecturas. | GPL | |
Interfaz de programación de aplicaciones de rendimiento (PAPI) | Varios | Biblioteca para contadores de rendimiento de hardware en microprocesadores modernos. | ||
LIKWID | Linux | C / C ++, Fortran, Python, Java y Lua | Conjunto de herramientas de aplicaciones de línea de comandos y biblioteca para programadores orientados al rendimiento (monitorización del rendimiento del hardware, control de afinidad, etc.). | GPLv3 |
Pin de Intel | Linux, Windows, macOS, Android | Sistema de instrumentación binaria dinámica que permite a los usuarios crear herramientas personalizadas de análisis de programas. | Propietario pero gratuito para uso no comercial | |
PurifyPlus racional | AIX, Linux, Solaris, Windows | Herramienta de generación de perfiles de rendimiento, depurador de memoria y herramienta de cobertura de código . | Propiedad | |
Scalasca | Linux | C / C ++, Fortran | Analizador de trazas en paralelo. | Libre / código abierto (licencia BSD) |
Tiburón de Apple | macOS (descontinuado con 10.7) | Analizador de rendimiento. | Freeware patentado | |
Rendimiento superluminal | Windows, Xbox, PlayStation | C, C ++, óxido | Generador de perfiles híbrido de muestreo e instrumentación, construido teniendo en cuenta la facilidad de uso y la escalabilidad. | Propiedad |
Systemtap | Linux | Herramienta programable de rastreo / sondeo del sistema; se puede programar para generar perfiles basados en funciones o contador de tiempo o rendimiento del kernel y / o su espacio de usuario. | Fuente abierta | |
recuerdo del tiempo | Linux, macOS, Windows | C, C ++, Python, Fortran | Kit de herramientas modular C ++ para crear instrumentos personalizados escalables y herramientas de muestreo para el análisis del rendimiento. Diseñado para minimizar la sobrecarga al adaptarse a la interfaz de cada componente de análisis de rendimiento en tiempo de compilación y simplificar la adición de soporte para la invocación y el almacenamiento de datos dentro de tiempos de ejecución multiproceso y multiproceso. Incluye muchos componentes prediseñados para temporización, uso de recursos, contadores de hardware, modelo de línea de techo y las API de instrumentación para VTune , Intel Advisor , LIKWID y Arm MAP , entre otros. Los componentes se pueden agrupar arbitrariamente en un solo identificador para invocaciones colectivas y difusión de argumentos de entrada. Los enlaces de Python se proporcionan para cada componente como una clase independiente para implementar herramientas de generación de perfiles de Python de baja sobrecarga. La creación de perfiles mediante instrumentación dinámica está disponible en Linux. | Libre / de código abierto (MIT) |
Valgrind | Linux, macOS, Solaris, Android | Cualquiera, incluido el ensamblador | Sistema de depuración y creación de perfiles; admite herramientas para detectar errores de gestión de memoria y subprocesos, o el rendimiento del perfil (cachegrind y callgrind). KCacheGrind , valkyrie y alleyoop son interfaces para valgrind. | Libre / código abierto (GPL) |
VTune Profiler de Intel Corporation (anteriormente VTune Amplifier) | Linux, Windows, visor solo para macOS | C, C ++, C #, Data Parallel C ++ (DPC ++), Fortran, .NET, Java, Python, Go, ASM Assembly | Una colección de análisis de perfiles implementados con tecnologías de rastreo de procesadores, instrumentación y muestreo. Incluye análisis de Hotspot, Threading, HPC, I / O, FPGA, GPU, System, Throttling y Microarchitecture. | Freeware y propietario. También disponible como parte del kit de herramientas base de Intel oneAPI . |
WonderLeak | Ventanas | C, C ++, Delphi (Pascal). | Un generador de perfiles de asignación de manejo y montón de Windows de alto rendimiento. | Propiedad |
Kit de herramientas de análisis de rendimiento de Windows de Microsoft | Ventanas | Freeware patentado | ||
Girar Zoom derecho | Linux, macOS, visor solo para Windows | Admite la mayoría de los lenguajes compilados en procesadores ARM y x86. | Generador de perfiles estadístico gráfico y de línea de comandos (basado en eventos). | |
VisualSim | Linux, macOS, Microsoft Windows | Soporta C / C ++ / SystemC | Plataforma de simulación y modelado gráfico para seleccionar, analizar y validar la arquitectura de sistemas electrónicos complejos en cuanto a rendimiento, potencia y fiabilidad. | Propiedad |
C y C ++
- Arm MAP , un generador de perfiles de rendimiento compatible con plataformas Linux.
- AppDynamics , una solución de gestión del rendimiento de aplicaciones [ palabra de moda ] para aplicaciones C / C ++ a través de SDK.
- AQtime Pro , un perfilador de rendimiento y un depurador de asignación de memoria que se puede integrar en Microsoft Visual Studio y Embarcadero RAD Studio, o se puede ejecutar como una aplicación independiente.
- EasyProfiler Generador de perfiles instrumental rápido y ligero de código abierto gratuito para C ++ con cliente de interfaz de usuario basado en Qt. Puede perfilar aplicaciones remotas a través de la red.
- IBM Rational Purify era un depurador de memoria que permitía analizar el rendimiento.
- Los instrumentos (incluidos con Xcode) se utilizan para perfilar las asignaciones de memoria de un ejecutable, el uso del tiempo, la actividad del sistema de archivos, la actividad de la GPU, etc.
- Intel Parallel Studio contiene Intel VTune Amplifier, que sintoniza programas en serie y en paralelo. También incluye Intel Advisor e Intel Inspector. Intel Advisor optimiza la vectorización (uso de instrucciones SIMD) y prototipos de implementaciones de subprocesos. Intel Inspector detecta y depura carreras, interbloqueos y errores de memoria.
- Parasoft Insure ++ proporciona una herramienta gráfica que muestra y anima las asignaciones de memoria en tiempo real para exponer la pérdida de memoria, la fragmentación, el uso excesivo, los cuellos de botella y las fugas.
- Timemory , un conjunto de herramientas modular de C ++ para crear herramientas de análisis de rendimiento que proporciona numerosas herramientas de línea de comandos y bibliotecas como subproducto de su flexibilidad y reutilización.
- Visual Studio Team System Profiler , perfilador comercial de Microsoft.
Java
- inspectIT es una solución de gestión de rendimiento de aplicaciones (APM) de código abierto [ palabra de moda ] para supervisar y analizar aplicaciones de software, disponible bajo la licencia Apache , versión 2.0 (ALv2).
- JConsole es el generador de perfiles que viene con el kit de desarrollo de Java
- JProfiler
- JRockit Mission Control , un generador de perfiles con bajos gastos generales.
- Netbeans Profiler , un generador de perfiles integrado en NetBeans IDE (utiliza internamente jvisualvm profiler)
- Plumbr , monitorización del rendimiento de la aplicación Java con detección automatizada de la causa raíz. Vincula pérdidas de memoria, ineficiencia de GC, bases de datos lentas y llamadas a servicios web externos, subprocesos bloqueados y otros problemas de rendimiento con la línea en el código fuente que los causa.
- OverOps , confiabilidad continua para la cadena de suministro de software moderno, detecta y entrega automáticamente la automatización de la causa raíz de todos los errores.
- VisualVM es una herramienta visual que integra varias herramientas JDK de línea de comandos y capacidades de creación de perfiles ligeras. Se incluye con el kit de desarrollo de Java desde la versión 6, actualización 7.
- FusionReactor , supervisión del rendimiento de las aplicaciones Java: baja sobrecarga, herramientas de grado de producción para depuración de producción, creación de perfiles de código, memoria y análisis de subprocesos.
JavaScript
- Firebug es un complemento de Firefox para desarrollo web, también tiene un generador de perfiles para JavaScript .
- Microsoft Visual Studio AJAX Profiling Extensions es una herramienta gratuita de creación de perfiles para JavaScript de Microsoft Research .
.NETO
- CLR Profiler es un generador de perfiles de memoria gratuito proporcionado por Microsoft para aplicaciones CLR .
- GlowCode es un generador de perfiles de memoria y rendimiento para aplicaciones .NET que utilizan C # y otros lenguajes .NET. Identifica funciones que requieren mucho tiempo y detecta pérdidas de memoria y errores en aplicaciones nativas, administradas y mixtas de Windows x64 y x86.
- Estudio visual
- DotNetBlackbox es un depurador en tiempo de ejecución post mortem para C # y VB.NET. Registra cada paso de cada comando si es necesario en el entorno del cliente. También es posible registrar valores de variables.
PHP
- BlackFire.io
- Dbg
- Xdebug es una extensión de PHP que proporciona funciones de depuración y creación de perfiles.
Ver también
- Análisis de rendimiento
- Depurador de memoria (incluye lista de perfiladores de memoria)
Referencias
- ^ "CodeXL" . Archivado desde el original el 19 de septiembre de 2013 . Consultado el 26 de septiembre de 2013 .
enlaces externos
- Herramientas de análisis de rendimiento , artículo del Laboratorio Nacional Lawrence Livermore