Как заставить lcov работать быстрее?

У меня проблемы с производительностью с 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 профилей. Каждый файл данных составляет около 1 млн строк.

lcov --combine а также lcov --remove шаги очень медленные. Около 45 секунд для каждого из них.

Есть ли способ ускорить этот шаг? При необходимости я могу использовать несколько потоков, и у меня достаточно памяти. Если есть другой инструмент, способный правильно выполнить эту комбинацию, я также был бы заинтересован (я пытался преобразовать файлы в Cobertura и выполнить слияние с помощью найденного мной скрипта Python, но он вылетает).

Если есть альтернатива полностью, мне тоже интересно. Я использовал gcovr, но с ним мне пришлось использовать несколько других инструментов, чтобы сделать комбинацию, и это не оптимально, но это намного быстрее.

8

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]