Skip to content

Conversation

@guitargeek
Copy link
Contributor

Building RooFit during development feels a bit sluggish, even with
ccache on. That is because lots of time is spent in linking many small
test executables, which ccache doesn't make faster.

This can be improved by grouping some tests execuables in RooFitCore and
RooFit, suggested in this commit.

Some comparisons (for a build with roofit_multiprocess=OFF):

  • With a hot cache, building roofit/rooficore/test and
    roofit/roofit/test after deleting these directories takes 10
    seconds instead of 30 on a single core with my Clang setup.

  • The number of tests in the same two directories is reduced from 76
    to 21

  • The time it takes to run all tests in the same directories on a
    single core reduces from 48 to 34 seconds

  • The new bundles tests are still relatively small:

    1/21 gtest-roofit-roofit-testRooFit ..........................   Passed    3.56 sec
    2/21 gtest-roofit-roofit-vectorisedPDFs-testVectorizedPDFs ...   Passed   11.64 sec
    4/21 gtest-roofit-roofitcore-testRooFitCore ..................   Passed    4.09 sec
  • In case of a failure on the CI, it will still be easy to see which
    test failed exactly, because the combined logs are still clean and
    not overwhelming (the longest is testVectorizedPDFs with 909
    lines)

The INFO output is not needed for the tests, and only clutters the log
if one is debugging a failure.
Building RooFit during development feels a bit sluggish, even with
`ccache` on. That is because lots of time is spent in linking many small
test executables, which `ccache` doesn't make faster.

This can be improved by grouping some tests execuables in RooFitCore and
RooFit, suggested in this commit.

Some comparisons (for a build with `roofit_multiprocess=OFF`):

  * With a hot cache, building `roofit/rooficore/test` and
    `roofit/roofit/test` after deleting these directories takes 10
    seconds instead of 30 on a single core with my Clang setup.

  * The number of tests in the same two directories is reduced from 76
    to 21

  * The time it takes to run all tests in the same directories on a
    single core reduces from 48 to 34 seconds

  * The new bundles tests are still relatively small:
    ```txt
    1/21 Test root-project#302: gtest-roofit-roofit-testRooFit ..........................   Passed    3.56 sec
    2/21 Test root-project#305: gtest-roofit-roofit-vectorisedPDFs-testVectorizedPDFs ...   Passed   11.64 sec
    4/21 Test root-project#307: gtest-roofit-roofitcore-testRooFitCore ..................   Passed    4.09 sec
    ```
  * In case of a failure on the CI, it will still be easy to see which
    test failed exactly, because the combined logs are still clean and
    not overwhelming (the longest is `testVectorizedPDFs` with 909
    lines)
@github-actions
Copy link

Test Results

    22 files      22 suites   3d 15h 35m 47s ⏱️
 3 757 tests  3 755 ✅ 0 💤  2 ❌
75 625 runs  75 605 ✅ 0 💤 20 ❌

For more details on these failures, see this check.

Results for commit 0b357f1.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant