10.1 Введение в gcov
gcov — это программа для тестирования покрытия кода. Используйте ее в сочетании с GCC для анализа ваших программ, чтобы создать более эффективный и быстрый код и обнаружить не протестированные части программы. Вы можете использовать gcov как инструмент профилирования, чтобы определить, где ваши усилия по оптимизации наилучшим образом повлияют на ваш код. Вы также можете использовать gcov вместе с другим инструментом профилирования, gprof, чтобы оценить, какие части вашего кода используют наибольшее количество времени вычислений.
Инструменты профилирования помогают анализировать производительность вашего кода. Используя профилировщик, такой как gcov или gprof, вы можете получить некоторые базовые статистические данные о производительности, такие как:
- как часто выполняется каждая строка кода
- какие строки кода фактически выполняются
- сколько времени вычислений затрачивает каждый фрагмент кода
Узнав эти вещи о работе вашего кода после компиляции, вы можете просмотреть каждый модуль, чтобы определить, какие модули следует оптимизировать. gcov поможет вам определить, где следует работать над оптимизацией.
Разработчики программного обеспечения также используют тестирование покрытия в сочетании с наборами тестов, чтобы убедиться, что программное обеспечение действительно достаточно хорошее для выпуска. Наборы тестов могут проверить, работает ли программа как ожидается; программа покрытия тестирует, насколько большая часть программы обрабатывается набором тестов. Разработчики затем могут определить, какие виды тестовых случаев необходимо добавить в наборы тестов, чтобы создать как лучшее тестирование, так и лучший конечный продукт.
Вы должны скомпилировать свой код без оптимизации, если планируете использовать gcov, потому что оптимизация, объединяющая некоторые строки кода в одну функцию, может не предоставить вам достаточно информации для поиска «горячих точек», где код использует значительное количество времени вычислений. Аналогично, поскольку gcov накапливает статистику по строкам (на минимальном уровне детализации), он лучше всего работает с стилем программирования, в котором в каждой строке находится только одно оператор. Если вы используете сложные макросы, которые разворачиваются в циклы или другие управляющие структуры, статистика менее полезна — она сообщает только о строке, где появляется вызов макроса. Если ваши сложные макросы ведут себя как функции, вы можете заменить их встроенными функциями, чтобы решить эту проблему.
gcov создаёт файл журнала с именем sourcefile.gcov, который указывает, сколько раз каждая строка исходного файла sourcefile.c была выполнена. Вы можете использовать эти файлы журнала вместе с gprof для помощи в точной настройке производительности ваших программ. gprof предоставляет информацию о времени выполнения, которую вы можете использовать вместе с информацией, полученной из gcov.
gcov работает только с кодом, скомпилированным с помощью GCC. Он несовместим ни с какими другими механизмами профилирования или тестирования покрытия.
Далее: Вызов Gcov, Вернуться к: Gcov [Содержание][Индекс]
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-7.5.0/gcc/Gcov-Intro.html