Профилирование (информатика)

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Профилирование — сбор характеристик работы программы, таких как время выполнения отдельных фрагментов (обычно подпрограмм), число верно предсказанных условных переходов, число кэш-промахов и т. д. Инструмент, используемый для анализа работы, называют профилировщиком или профайлером (англ. profiler). Обычно выполняется совместно с оптимизацией программы.

Характеристики могут быть аппаратными (время) или вызванные программным обеспечением (функциональный запрос). Инструментальные средства анализа программы чрезвычайно важны для того, чтобы понять поведение программы. Проектировщики ПО нуждаются в таких инструментальных средствах, чтобы оценить, как хорошо выполнена работа. Программисты нуждаются в инструментальных средствах, чтобы проанализировать их программы и идентифицировать критические участки программы.

Это часто используется, чтобы определить, как долго выполняются определенные части программы, как часто они выполняются, или генерировать граф вызовов (Call Graph). Обычно эта информация используется, чтобы идентифицировать те участки программы, которые работают больше всего. Эти трудоёмкие участки могут быть оптимизированы, чтобы выполняться быстрее.

Также выделяют анализ покрытия (Code Coverage) — процесс выявления неиспользуемых участков кода при помощи, например, многократного запуска программы.

Пример программ, профилирующих производительность[править | править вики-текст]

  • VTune
  • CodeAnalyst
  • AQtime
  • gprof
  • Valgrind - средство динамического двоичного анализа программ, содержит 2 вида плагинов для профилирования - Cachegrind и Callgrind.
  • Xdebug - средство профилирования PHP скриптов.

Пример программ, профилирующих потребление памяти[править | править вики-текст]

Ссылки[править | править вики-текст]

Примечания[править | править вики-текст]