Spec-Zone.ru › GCC 13

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

Spec-Zone.ru

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