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-5.5.0/gcc/Gcov-Intro.html