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