Spec-Zone.ru › GCC 8

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

Spec-Zone.ru

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