[Qbs] QBS script parsing speed
Richard Weickelt
richard at weickelt.de
Tue Jun 30 15:09:21 CEST 2020
Jochen,
>> Well [the time] goes into "Handling Products". So it is ModuleLoader::handleProduct().
>> And there, it could be the ModuleMerger. But speculation is dangerous when discussing about performance.
> See https://lists.qt-project.org/pipermail/qbs/2019-August/002546.html
>
> You can find my test results together with the scripts to generate the projects here:
> https://gist.github.com/j-ulrich/35f345007809c77403a8ee88f4d9db11#file-results-md
Then you might be happy to hear that the ModuleMerger was completely
rewritten for Qbs 1.16.0
(https://codereview.qt-project.org/c/qbs/qbs/+/284737). 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
More information about the Qbs
mailing list