Spec-Zone.ru › GCC 15

11.1 Введение в gcov

gcov — это программа для проверки покрытия кода тестами. Используйте её вместе с GCC для анализа программ, чтобы создавать более эффективный и быстро работающий код, а также выявлять непроверенные части программы. gcov можно использовать как инструмент профилирования, который поможет определить, где оптимизация кода даст наибольший эффект. Также можно использовать gcov вместе с другим инструментом профилирования — gprof, — чтобы оценить, какие части кода требуют наибольшего вычислительного времени.

Инструменты профилирования помогают анализировать производительность кода. С помощью профилировщика, например gcov или gprof, можно получить некоторые основные статистические данные о производительности, например:

  • как часто выполняется каждая строка кода
  • какие строки кода действительно выполняются
  • сколько вычислительного времени занимает каждый участок кода

Зная, как работает скомпилированный код, можно изучить каждый модуль и определить, какие модули следует оптимизировать. gcov помогает определить, над чем следует работать при оптимизации.

Разработчики программного обеспечения также используют проверку покрытия кода вместе с наборами тестов, чтобы убедиться, что программа действительно готова к выпуску. Наборы тестов проверяют, работает ли программа ожидаемым образом; программа проверки покрытия определяет, какая часть программы проверяется набором тестов. Затем разработчики могут определить, какие типы тестов нужно добавить в наборы, чтобы улучшить и тестирование, и конечный продукт.

Если вы планируете использовать gcov, компилируйте код без оптимизации: при оптимизации несколько строк кода могут объединяться в одну функцию, и в результате вы получите недостаточно информации для поиска «узких мест», где код тратит много процессорного времени. Кроме того, поскольку gcov собирает статистику по строкам (с наименьшей точностью), лучше всего он работает с таким стилем программирования, при котором в каждой строке находится только одна инструкция. Если используются сложные макросы, раскрывающиеся в циклы или другие управляющие конструкции, статистика менее полезна — она содержит данные только для строки, в которой находится вызов макроса. Если сложные макросы ведут себя как функции, эту проблему можно решить, заменив их встраиваемыми функциями.

gcov создаёт файл журнала sourcefile.gcov, в котором указано, сколько раз выполнялась каждая строка исходного файла sourcefile.c. Эти файлы журнала можно использовать вместе с gprof для более точной настройки производительности программ. gprof предоставляет данные о времени, которые можно использовать вместе с информацией, полученной с помощью gcov.

gcov работает только с кодом, скомпилированным GCC. Он несовместим с любыми другими механизмами профилирования или проверки покрытия кода.

© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-15.3.0/gcc/Gcov-Intro.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API