[Qbs] Improving qbs resolve performance

Maximilian Hrabowski hrabowski at clausmark.com
Thu Jul 11 14:18:30 CEST 2019


Hi all,

I have a fairly large project with a root projects that pulls in several SubProjects, altogether with unit tests its about 313 qbs files that are pulled in.

Let root.qbs be the root qbs file of my project and depend.qbs a subproject that many other subprojects depend on.

With a single profile and single config I encounter the following duration for qbs resolve on my macbook pro with 12 logical CPUs:

1) qbs resolve (clean, new build directory, so includes creating a build graph):  ~1m 25s
2) qbs resolve (no changes): ~0.5 s
3) qbs resolve after "touch root.qbs" (restores build graph): ~1m 15 s
4) qbs resolve after “touch depend.qbs” (restores build graph): ~1m 15s

From the durations i would expect that there is some room for improvement. To me it seems (by looking at 3 and 4) that qbs rebuilds the whole build graph if it detects any change to any qbs file in the project. If this is the case i wonder how difficult it would be to improve this and what the right approach would be. Maybe looking at “Depends {}” would be enough to determine the “dirty path”.

Fortunately QtC 4.9.x seems to cache something now since opening a qbs project will no longer cause a full resolve.

Any ideas or maybe even someone looking at that already?

Best regards,
Maximilian


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/qbs/attachments/20190711/e3e651e5/attachment.html>


More information about the Qbs mailing list