diff --git a/wiki/Prog/Development/CMake управление проектом.adoc b/wiki/Prog/Development/CMake управление проектом.adoc index 3fbcf4e..5665608 100644 --- a/wiki/Prog/Development/CMake управление проектом.adoc +++ b/wiki/Prog/Development/CMake управление проектом.adoc @@ -1277,7 +1277,6 @@ add_code_coverage(${TRGT}) Пример анализа покрытия кода на примере проекта `cmlib-example-app-features`: - [source,sh] ---- mkdir -p _build/debug @@ -1289,6 +1288,32 @@ make coverage-cmlib-example-app-features make coverage-report-cmlib-example-app-features ---- -В результате в каталоге `report-cmlib-example-app-features` будет сформирован -отчёт о покрытии кода во время выполнения программы в виде HTML-страниц. +После выполнения этих команд в каталоге `report-cmlib-example-app-features` +будет сформирован отчёт в виде HTML-страниц. + + +=== Профилирование кода + +Библиотека CMLib предоставляет вариант сборки для профилирования кода, +для которого можно сгенерировать сборочные файлы, присвоив переменной +`CMAKE_BUILD_TYPE` значение `Profile`: + +[source,sh] +---- +mkdir -p _build/profile +cd _build/profile +cmake ../.. -DCMAKE_BUILD_TYPE=Profile +---- + +По окончании работы исполняемого файла будет сгенерирован файл +`gmon.out`, по данным из которого можно строить отчёты утилитой `gprof`. +Например: + +[source,sh] +---- +./cmlib-example-app-features +gprof -b cmlib-example-app-features gmon.out > analysis-tree.txt +gprof -b -p cmlib-example-app-features gmon.out > analysis-flat.txt +---- +