* [LTP] On the performance of lcov... @ 2016-12-17 18:56 Eric Chamberland 2016-12-17 19:06 ` Jan Stancek 0 siblings, 1 reply; 6+ messages in thread From: Eric Chamberland @ 2016-12-17 18:56 UTC (permalink / raw) To: ltp 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 ^ permalink raw reply [flat|nested] 6+ messages in thread
* [LTP] On the performance of lcov... 2016-12-17 18:56 [LTP] On the performance of lcov Eric Chamberland @ 2016-12-17 19:06 ` Jan Stancek 2016-12-17 21:29 ` Eric Chamberland 0 siblings, 1 reply; 6+ messages in thread From: Jan Stancek @ 2016-12-17 19:06 UTC (permalink / raw) To: ltp ----- Original Message ----- > From: "Eric Chamberland" <Eric.Chamberland@giref.ulaval.ca> > To: ltp@lists.linux.it > Sent: Saturday, 17 December, 2016 7:56:17 PM > Subject: [LTP] On the performance of lcov... > > 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? Hi, 2 bugs below come to mind, try turning off --all-blocks to see if this is your case as well. There should an option for that in lcov config file. Bug 1290759 - gcov takes up to 36hours to process xfs_sb.gcda on Intel Xeon https://bugzilla.redhat.com/show_bug.cgi?id=1290759 Bug 67992 - GCOV takes an absurdly long time to process a file https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67992 Regards, Jan > > anyway, thanks for this great tool! :) > > Eric > > > -- > Mailing list info: https://lists.linux.it/listinfo/ltp > ^ permalink raw reply [flat|nested] 6+ messages in thread
* [LTP] On the performance of lcov... 2016-12-17 19:06 ` Jan Stancek @ 2016-12-17 21:29 ` Eric Chamberland 2016-12-19 19:07 ` Eric Chamberland 0 siblings, 1 reply; 6+ messages in thread From: Eric Chamberland @ 2016-12-17 21:29 UTC (permalink / raw) To: ltp Good, I modified the ~/.lcovrc file and I will report the new timings tomorrow. Thanks! :) Eric Le 2016-12-17 à 14:06, Jan Stancek a écrit : > > > > ----- Original Message ----- >> From: "Eric Chamberland" <Eric.Chamberland@giref.ulaval.ca> >> To: ltp@lists.linux.it >> Sent: Saturday, 17 December, 2016 7:56:17 PM >> Subject: [LTP] On the performance of lcov... >> >> 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? > Hi, > > 2 bugs below come to mind, try turning off --all-blocks to see if this is > your case as well. There should an option for that in lcov config file. > > Bug 1290759 - gcov takes up to 36hours to process xfs_sb.gcda on Intel Xeon > https://bugzilla.redhat.com/show_bug.cgi?id=1290759 > > Bug 67992 - GCOV takes an absurdly long time to process a file > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67992 > > Regards, > Jan > >> anyway, thanks for this great tool! :) >> >> Eric >> >> >> -- >> Mailing list info: https://lists.linux.it/listinfo/ltp >> ^ permalink raw reply [flat|nested] 6+ messages in thread
* [LTP] On the performance of lcov... 2016-12-17 21:29 ` Eric Chamberland @ 2016-12-19 19:07 ` Eric Chamberland 2016-12-31 18:55 ` Eric Chamberland 2017-01-03 9:14 ` Jan Stancek 0 siblings, 2 replies; 6+ messages in thread From: Eric Chamberland @ 2016-12-19 19:07 UTC (permalink / raw) To: ltp Hi, As suggested, I introduced: cat ~/.lcovrc geninfo_gcov_all_blocks=0 Now the timings for each steps (see 1st mail) are: Now ; Before ================ 600s ; 660s 1269s ; 2113s 2815s ; 3112s 2305s ; 2227s 1401s ; 1391s ================ total: 8390s ; 9503s So there is a good gain in the 2nd step, but overall, no big changes... I am using gcov -v gcov (SUSE Linux) 4.8.1 20130909 [gcc-4_8-branch revision 202388] lcov -v lcov: LCOV version 1.12 Are there any other hints or is it "normal" to have these timings? Is there someone who tried to optimise gcov or lcov? Will I see a significant gain if I upgrade to a newer version of the compiler? Thanks, Eric On 17/12/16 04:29 PM, Eric Chamberland wrote: > Good, I modified the ~/.lcovrc file and I will report the new timings > tomorrow. > > Thanks! :) > > Eric > > Le 2016-12-17 à 14:06, Jan Stancek a écrit : >> >> >> >> ----- Original Message ----- >>> From: "Eric Chamberland" <Eric.Chamberland@giref.ulaval.ca> >>> To: ltp@lists.linux.it >>> Sent: Saturday, 17 December, 2016 7:56:17 PM >>> Subject: [LTP] On the performance of lcov... >>> >>> 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? >> Hi, >> >> 2 bugs below come to mind, try turning off --all-blocks to see if this is >> your case as well. There should an option for that in lcov config file. >> >> Bug 1290759 - gcov takes up to 36hours to process xfs_sb.gcda on Intel >> Xeon >> https://bugzilla.redhat.com/show_bug.cgi?id=1290759 >> >> Bug 67992 - GCOV takes an absurdly long time to process a file >> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67992 >> >> Regards, >> Jan >> >>> anyway, thanks for this great tool! :) >>> >>> Eric >>> >>> >>> -- >>> Mailing list info: https://lists.linux.it/listinfo/ltp >>> > > ^ permalink raw reply [flat|nested] 6+ messages in thread
* [LTP] On the performance of lcov... 2016-12-19 19:07 ` Eric Chamberland @ 2016-12-31 18:55 ` Eric Chamberland 2017-01-03 9:14 ` Jan Stancek 1 sibling, 0 replies; 6+ messages in thread From: Eric Chamberland @ 2016-12-31 18:55 UTC (permalink / raw) To: ltp I have a doubt: Am I posting to the right list to discuss about lcov performance? Thanks, Eric Le 2016-12-19 à 14:07, Eric Chamberland a écrit : > Hi, > > As suggested, I introduced: > cat ~/.lcovrc > geninfo_gcov_all_blocks=0 > > Now the timings for each steps (see 1st mail) are: > > Now ; Before > ================ > 600s ; 660s > 1269s ; 2113s > 2815s ; 3112s > 2305s ; 2227s > 1401s ; 1391s > ================ > total: > 8390s ; 9503s > > So there is a good gain in the 2nd step, but overall, no big changes... > > I am using > gcov -v > gcov (SUSE Linux) 4.8.1 20130909 [gcc-4_8-branch revision 202388] > > lcov -v > lcov: LCOV version 1.12 > > Are there any other hints or is it "normal" to have these timings? > > Is there someone who tried to optimise gcov or lcov? > > Will I see a significant gain if I upgrade to a newer version of the > compiler? > > Thanks, > > Eric > > On 17/12/16 04:29 PM, Eric Chamberland wrote: >> Good, I modified the ~/.lcovrc file and I will report the new timings >> tomorrow. >> >> Thanks! :) >> >> Eric >> >> Le 2016-12-17 à 14:06, Jan Stancek a écrit : >>> >>> >>> >>> ----- Original Message ----- >>>> From: "Eric Chamberland" <Eric.Chamberland@giref.ulaval.ca> >>>> To: ltp@lists.linux.it >>>> Sent: Saturday, 17 December, 2016 7:56:17 PM >>>> Subject: [LTP] On the performance of lcov... >>>> >>>> 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? >>> Hi, >>> >>> 2 bugs below come to mind, try turning off --all-blocks to see if >>> this is >>> your case as well. There should an option for that in lcov config file. >>> >>> Bug 1290759 - gcov takes up to 36hours to process xfs_sb.gcda on Intel >>> Xeon >>> https://bugzilla.redhat.com/show_bug.cgi?id=1290759 >>> >>> Bug 67992 - GCOV takes an absurdly long time to process a file >>> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67992 >>> >>> Regards, >>> Jan >>> >>>> anyway, thanks for this great tool! :) >>>> >>>> Eric >>>> >>>> >>>> -- >>>> Mailing list info: https://lists.linux.it/listinfo/ltp >>>> >> >> > ^ permalink raw reply [flat|nested] 6+ messages in thread
* [LTP] On the performance of lcov... 2016-12-19 19:07 ` Eric Chamberland 2016-12-31 18:55 ` Eric Chamberland @ 2017-01-03 9:14 ` Jan Stancek 1 sibling, 0 replies; 6+ messages in thread From: Jan Stancek @ 2017-01-03 9:14 UTC (permalink / raw) To: ltp ----- Original Message ----- > From: "Eric Chamberland" <Eric.Chamberland@giref.ulaval.ca> > To: "Jan Stancek" <jstancek@redhat.com> > Cc: ltp@lists.linux.it > Sent: Monday, 19 December, 2016 8:07:40 PM > Subject: Re: [LTP] On the performance of lcov... > > Hi, > > As suggested, I introduced: > cat ~/.lcovrc > geninfo_gcov_all_blocks=0 > > Now the timings for each steps (see 1st mail) are: > > Now ; Before > ================ > 600s ; 660s > 1269s ; 2113s > 2815s ; 3112s > 2305s ; 2227s > 1401s ; 1391s > ================ > total: > 8390s ; 9503s > > So there is a good gain in the 2nd step, but overall, no big changes... > > I am using > gcov -v > gcov (SUSE Linux) 4.8.1 20130909 [gcc-4_8-branch revision 202388] > > lcov -v > lcov: LCOV version 1.12 > > Are there any other hints or is it "normal" to have these timings? Hi, I'd try to drop lcov_branch_coverage=1 from command line. Or if you need coverage only for part of kernel tree, add also "-k" parameter. I ran following on randomly picked RHEL7.3 x86 host and these are my numbers: Intel(R) Xeon(R) CPU E5-2470 v2 @ 2.40GHz # cat /etc/redhat-release Red Hat Enterprise Linux Server release 7.3 (Maipo) # rpm -qa lcov lcov-1.13-1.noarch # uname -r 3.10.0-512.el7.gcov.x86_64 # rpm -qa gcc gcc-4.8.5-11.el7.x86_64 # grep block /etc/lcovrc # Use gcov's --all-blocks option if non-zero geninfo_gcov_all_blocks = 0 # time lcov -i -c --output-file initial.cov real 4m11.983s user 3m38.892s sys 0m3.400s # time lcov -c --output-file second.cov real 4m14.554s user 3m51.681s sys 0m22.913s # time lcov -a initial.cov -a second.cov -o total.cov Summary coverage rate: lines......: 7.2% (189840 of 2654202 lines) functions..: 9.1% (18434 of 203509 functions) branches...: no data found real 0m25.222s user 0m24.528s sys 0m0.696s # time genhtml -o /var/www/html/test/ total.cov real 7m25.938s user 4m58.467s sys 2m30.020s > Am I posting to the right list to discuss about lcov performance? lcov is maintained separately (mostly by its author) [1], so I'd try to CC ltp-coverage@lists.sourceforge.net and Peter Oberparleiter. [1] http://ltp.sourceforge.net/coverage/lcov.php Regards, Jan ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2017-01-03 9:14 UTC | newest] Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2016-12-17 18:56 [LTP] On the performance of lcov Eric Chamberland 2016-12-17 19:06 ` Jan Stancek 2016-12-17 21:29 ` Eric Chamberland 2016-12-19 19:07 ` Eric Chamberland 2016-12-31 18:55 ` Eric Chamberland 2017-01-03 9:14 ` Jan Stancek
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.