我和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文件大约有100万行。
lcov --combine和lcov --remove步骤也非常慢。每个人大约45秒。
有什么办法来加速这个联合步骤吗?如果必要的话,我可以使用几个线程,而且我有足够的内存。如果有其他工具能够正确地完成这种组合,我也会感兴趣(我尝试将文件转换为Cobertura,并使用我找到的Python脚本进行合并,但是它崩溃了)。
如果有一种完全替代lcov的方法,我也感兴趣。我一直在使用gcovr,但是有了它,我必须使用其他一些工具来完成这个组合,这并不是最优的,但它要快得多。
发布于 2019-10-15 20:31:34
如果有一种完全替代lcov的方法,我也感兴趣。
试试看-它将并行使用所有可用的内核(它可以以lcov信息格式输出报告):
https://github.com/RPGillespie6/fastcov
它还可以合并文件。注:您需要GCC 9+
https://stackoverflow.com/questions/37211721
复制相似问题