В компьютерном программировании инструментирование — это процесс модификации программного обеспечения таким образом, чтобы можно было выполнять его анализ .
Как правило, инструментирование изменяет либо исходный код , либо двоичный код .
Инструментирование позволяет профилировать : [1]
измерять динамическое поведение во время тестового прогона. Это полезно для свойств программы, которые нельзя проанализировать статически с достаточной точностью, например, для анализа производительности и псевдонимов .
Приборы могут включать в себя:
- Регистрация событий, таких как сбои, начало и конец операции [2]
- Измерение и регистрация продолжительности операций
Ограничения
Инструментирование ограничено покрытием выполнения. Если программа никогда не достигает определенной точки выполнения, то инструментирование в этой точке не собирает никаких данных. Например, если приложение текстового процессора инструментировано, но пользователь никогда не активирует функцию печати, то инструментирование ничего не может сказать о процедурах, которые используются исключительно функцией печати.
Некоторые типы инструментирования могут привести к резкому увеличению времени выполнения. Это может ограничить применение инструментирования для контекстов отладки.
Смотрите также
- Перехват — ряд методов, используемых для изменения или дополнения поведения операционной системы, приложений или других компонентов программного обеспечения путем перехвата вызовов функций, сообщений или событий, передаваемых между компонентами программного обеспечения.
- Симулятор набора инструкций – моделирование всех инструкций на уровне машинного кода для обеспечения инструментирования
- Аналитика во время выполнения — технологии, управляемые сервисы и практики для сбора, интеграции, анализа и представления уровней, шаблонов и практик использования приложений.
- Анализ производительности программного обеспечения — методы мониторинга производительности кода, включая инструментирование.
- Счетчик производительности оборудования
- DTrace — комплексная динамическая трассировочная среда для устранения неполадок ядра и приложений в производственных системах в режиме реального времени, реализованная в Solaris , macOS , FreeBSD и многих других платформах и продуктах.
- Java Management Extensions (JMX) – технология Java для управления и мониторинга приложений, системных объектов, устройств (например, принтеров) и сервисно-ориентированных сетей.
- Измерение отклика приложения – стандартизированный API-интерфейс инструментария для C и Java .
- Динамическая перекомпиляция — функция некоторых эмуляторов и виртуальных машин, при которой система может перекомпилировать некоторую часть программы во время выполнения.
Ссылки
- ^ "Комментирование, тестирование и инструментирование кода". 3 января 2011 г. Получено 29 января 2014 г.
- ^ Обзор инструментирования исходного кода на сайте IBM
- Введение в инструментирование и трассировку: Microsoft Developer Network
- Инструменты разработчика Apple: Введение в инструменты
- SystemTap предоставляет инфраструктуру свободного программного обеспечения (GPL) для упрощения сбора информации о работающей системе Linux.
- cwrap Автоматическое обтекание функций C и C++ с помощью инструментирования.