[LTP] On the performance of lcov...

Eric Chamberland Eric.Chamberland@giref.ulaval.ca
Sat Dec 17 19:56:17 CET 2016


Hi,

We are running gcov+lcov analysis each night for our software.  It does 
a really great job to help us manage our nightly tests database (~1100 
runs) and to discover unused lines of code! :)

However running lcov+genthml is really time consuming (longer than the 
tests or even compiling the code) and I would like to know if there is a 
way to make lcov+genthml go a little faster...

Here is the timings for a complete analysis and html generation:

===========================
  660s (1866 .gcno files):  lcov --rc lcov_branch_coverage=1 --capture 
--initial -d $obj/dev -d $obj2/dev -o init.info

2113s (1662 .gcda files): lcov --rc lcov_branch_coverage=1 --capture -d 
$obj/dev -d $obj2/dev -o cov.info

3112s: lcov --rc lcov_branch_coverage=1 --remove init.info "/usr*" 
"/opt*" "/pmi/Indus*" -o init.info && lcov --rc lcov_branch_coverage=1 
--remove cov.info   "/usr*" "/opt*" "/pmi/Indus*" -o cov.info
...
Deleted 255 files
Writing data to cov.info
Summary coverage rate:
   lines......: 69.4% (357216 of 515067 lines)
   functions..: 64.1% (61500 of 95942 functions)
   branches...: 32.1% (717338 of 2232711 branches)

2227s:  lcov --rc lcov_branch_coverage=1 -a init.info -a cov.info -o 
total.info
...
Combining tracefiles.
Reading tracefile init.info
Reading tracefile cov.info
Writing data to total.info
Summary coverage rate:
   lines......: 64.5% (357216 of 553958 lines)
   functions..: 60.3% (61500 of 102006 functions)
   branches...: 32.1% (717338 of 2232711 branches)

1391s:  genhtml  --show-details --legend --branch-coverage 
--demangle-cpp -o $$pref_html/coverage_dev total.info
Reading data file total.info
Found 2854 entries.
...
===========================

total time: 9503s => 2h38m

We would like to understand if we are doing something wrong... or if 
someone is aware of this performance "problem" or willing to optimize 
lcov/genthml code itself?

anyway, thanks for this great tool! :)

Eric



More information about the ltp mailing list