我在使用lcov时遇到了性能问题。
我在七个不同的配置文件中执行一个程序,收集每个配置文件的覆盖范围,然后将覆盖配置文件与lcov合并:
lcov --rc lcov_branch_coverage=1 -a coverage_1.dat -a coverage_2.dat -a coverage_3.dat -a coverage_4.dat -a coverage_5.dat -a coverage_6.dat -a coverage_7.dat -o coverage_full.dat
然而,这是极其缓慢的。组合我的7个配置文件大约需要10分钟,这实际上比编译和运行7个配置文件要长。每个dat文件大约有1M行。
lcov --combine
和lcov --remove
步骤也很慢。每个人大约45秒。
有没有办法加快这个组合步骤?如果需要我可以使用几个线程,我有足够的内存。如果有其他工具可以正确地进行这种组合,我也会感兴趣(我已经尝试将文件转换为Cobertura并使用我找到的Python脚本进行合并,但它崩溃了)。
如果完全有替代lcov的话,我也很感兴趣。我一直在使用gcovr,但有了它,我必须使用其他几种工具来进行组合,这不是最佳选择,但速度要快得多。
答案 0 :(得分:0)
如果还有lcov的替代品,我也很感兴趣。
尝试fastcov-它将并行使用所有可用的内核(它可以以lcov信息格式输出报告):
https://github.com/RPGillespie6/fastcov
它目前无法合并文件,但可以轻松添加。