It brings a ~44% speed improvement in the problematic case according to your 
> Resolving withLeafExports/9-2-implicit
real    0m43.592s
real    0m24.494s

Thanks, Richard!

So for "medium" projects in terms of depth of the dependency tree, it's 
sensible to use transitive dependencies now:
real    0m18.180s
real    0m19.319s

However, for "large" projects, the workaround still seems to be 25% faster:
real    0m24.494s
real    0m18.149s


Am 30.06.20, 15:09 schrieb "Richard Weickelt" <>:


    >> Well [the time] goes into "Handling Products". So it is 
    >> And there, it could be the ModuleMerger. But speculation is dangerous 
when discussing about performance.
    > See
    > You can find my test results together with the scripts to generate the 
projects here:

    Then you might be happy to hear that the ModuleMerger was completely
    rewritten for Qbs 1.16.0
    ( Running your
    benchmark with Qbs 1.16.0 (Qt Creator 4.12) gives me significantly better
    results in case of transitive dependencies. See below.

    I am not sure whether this has any noticable effect on real-world projects.
    But if ModuleMerger was ever a bottleneck, then it should not longer be.

    i5-2520M CPU @ 2.50GHz Xubuntu 16.04)
    First line: Qbs 1.15.1
    Second line: Qbs 1.16.0

    > Resolving 4-8-direct
    real    0m3.089s
    real    0m2.669s

    > Resolving 4-8-implicit
    real    0m4.808s
    real    0m3.409s

    > Resolving 4-8-explicit
    real    0m3.898s
    real    0m3.085s

    > Resolving withLeafExports/4-8-direct
    real    0m16.508s
    real    0m13.793s

    > Resolving withLeafExports/4-8-implicit
    real    0m25.907s
    real    0m18.180s

    > Resolving withLeafExports/4-8-explicit
    real    0m21.393s
    real    0m15.844s

    > Resolving withLeafExports/9-2-direct
    real    0m13.992s
    real    0m10.750s

    > Resolving withLeafExports/9-2-implicit
    real    0m43.592s
    real    0m24.494s

    > Resolving withLeafExports/9-2-explicit
    real    0m26.019s
    real    0m17.589s

    > Resolving withAdditionalDepends/4-8-direct
    real    0m25.096s
    real    0m18.892s

    > Resolving withAdditionalDepends/4-8-implicit
    real    0m28.369s
    real    0m19.868s

    > Resolving withAdditionalDepends/4-8-explicit
    real    0m29.164s
    real    0m19.319s

    > Resolving withAdditionalDepends/9-2-direct
    real    0m19.110s
    real    0m17.264s

    > Resolving withAdditionalDepends/9-2-implicit
    real    0m20.887s
    real    0m19.269s

    > Resolving withAdditionalDepends/9-2-explicit
    real    0m18.359s
    real    0m18.149s

    > Resolving 9-2-direct
    real    0m2.500s

    > Resolving 9-2-implicit
    real    0m6.393s

    > Resolving 9-2-explicit
    real    0m3.833s
    real    0m2.326s

Qbs mailing list

Reply via email to