En programación informática , la instrumentación es el acto de modificar el software para que se pueda realizar un análisis en él.
Generalmente, la instrumentación modifica el código fuente o el código binario .
La instrumentación permite crear perfiles : [1]
midiendo el comportamiento dinámico durante una ejecución de prueba. Esto resulta útil para las propiedades de un programa que no se pueden analizar estáticamente con suficiente precisión, como el análisis de rendimiento y de alias .
La instrumentación puede incluir:
- Registro de eventos como fallos e inicio y fin de operaciones [2]
- Medición y registro de la duración de las operaciones
Limitaciones
La instrumentación está limitada por la cobertura de ejecución. Si el programa nunca llega a un punto de ejecución en particular, la instrumentación en ese punto no recopila datos. Por ejemplo, si se instrumenta una aplicación de procesamiento de textos, pero el usuario nunca activa la función de impresión, la instrumentación no puede decir nada sobre las rutinas que se utilizan exclusivamente por la función de impresión.
Algunos tipos de instrumentación pueden provocar un aumento drástico del tiempo de ejecución, lo que puede limitar la aplicación de la instrumentación a contextos de depuración.
Véase también
- Enganche : conjunto de técnicas utilizadas para alterar o aumentar el comportamiento de un sistema operativo, de aplicaciones o de otros componentes de software interceptando llamadas de función o mensajes o eventos que se transmiten entre componentes de software.
- Simulador de conjunto de instrucciones : simulación de todas las instrucciones a nivel de código de máquina para proporcionar instrumentación
- Inteligencia en tiempo de ejecución : tecnologías, servicios administrados y prácticas para la recopilación, integración, análisis y presentación de niveles, patrones y prácticas de uso de aplicaciones.
- Análisis del rendimiento del software : técnicas para supervisar el rendimiento del código, incluida la instrumentación.
- Contador de rendimiento de hardware
- DTrace : un marco integral de seguimiento dinámico para solucionar problemas de kernel y aplicaciones en sistemas de producción en tiempo real, implementado en Solaris , macOS , FreeBSD y muchas otras plataformas y productos.
- Extensiones de administración de Java (JMX) : tecnología Java para administrar y monitorear aplicaciones, objetos del sistema, dispositivos (como impresoras) y redes orientadas a servicios.
- Medición de respuesta de aplicaciones : API de instrumentación estandarizada para C y Java .
- Recompilación dinámica : una característica de algunos emuladores y máquinas virtuales donde el sistema puede recompilar alguna parte de un programa durante la ejecución.
Referencias
- ^ "Comentario, prueba e instrumentación de código". 3 de enero de 2011. Consultado el 29 de enero de 2014 .
- ^ Descripción general de la instrumentación del código fuente en el sitio web de IBM
- Introducción a la instrumentación y el seguimiento: Microsoft Developer Network
- Herramientas para desarrolladores de Apple: Introducción a los instrumentos
- SystemTap proporciona una infraestructura de software libre (GPL) para simplificar la recopilación de información sobre el sistema Linux en ejecución.
- cwrap Ajuste automático de funciones C y C++ con instrumentación.