Qbs 1.12.2 on macOS 10.14.5
CPU: 2,9 GHz Intel Core i7, 8 logical cores
RAM: 16 GB 2133 MHz LPDDR3
SSD drive
These results were created using different variants of projects. The projects differ in the following aspects.
The projects differ in the tree depth and the number of direct children per node in the build graph:
- "4-8": tree levels: 4; 8 direct children per node => 585 Products
- "9-2": tree levels: 9; 2 direct children per node => 511 Products
The projects differ in the way the nodes depend on their children:
- "direct:" nodes depend on their direct children but export nothing
- "implicit": nodes depend on their direct children and export these dependencies
- "explicit": nodes explicitly depend on all nodes of the their subtree and export nothing
The projects differ in where dependencies to external modules are included:
- nothing: no external dependencies
- "withAdditionalDepends": each node explicitly depends on "cpp" and "Qt.core"
- "withLeafExports": leaf nodes export "cpp" and "Qt.core"
Note: Only the variants with
- "withAdditionalDepends"
- "withLeafExports" + "implicit" dependency mode
ensure that all nodes depend on "cpp" and "Qt.core".
Project | Initial Resolve Time | Re-Resolve Time | Build Graph Size | No. of Depends Items |
---|---|---|---|---|
4-8-direct | 2.808s | 2.538s | 1.0M | 584 |
4-8-implicit | 3.558s | 3.469s | 1.2M | 1160 |
4-8-explicit | 3.417s | 3.273s | 1.2M | 1672 |
9-2-direct | 2.343s | 2.201s | 1.0M | 510 |
9-2-implicit | 5.579s | 5.579s | 1.4M | 1018 |
9-2-explicit | 3.631s | 3.623s | 1.4M | 3586 |
withAdditionalDepends/4-8-direct | 29.257s | 30.705s | 12.0M | 1754 |
withAdditionalDepends/4-8-implicit | 30.649s | 30.526s | 12.0M | 2330 |
withAdditionalDepends/4-8-explicit | 30.103s | 31.725s | 12.0M | 2842 |
withAdditionalDepends/9-2-direct | 25.691s | 31.440s | 11.0M | 1532 |
withAdditionalDepends/9-2-implicit | 29.684s | 32.190s | 11.0M | 2040 |
withAdditionalDepends/9-2-explicit | 27.105s | 27.664s | 11.0M | 4608 |
withLeafExports/4-8-direct | 25.598s | 25.673s | 2.8M | 1608 |
withLeafExports/4-8-implicit | 36.688s | 34.438s | 3.1M | 2184 |
withLeafExports/4-8-explicit | 29.080s | 30.262s | 3.1M | 2696 |
withLeafExports/9-2-direct | 18.374s | 17.615s | 3.7M | 1022 |
withLeafExports/9-2-implicit | 50.530s | 50.010s | 6.5M | 1530 |
withLeafExports/9-2-explicit | 29.111s | 29.514s | 6.4M | 4098 |
Re-Resolve: just touched the "root.qbs" and resolved again
The worst resolve time was observed when using transitive dependencies (Export
items) with a deep tree. On the other hand, transitive dependencies save writing redundant Depends
items.
Explicitly depending on needed modules increases the build graph size and the number of Depends
items to be written, but is faster when resolving.
Starting activity 'ModuleLoader'.
Project file loading and parsing took 134ms.
Preparing products took 1ms.
Setting up product dependencies took 8s, 756ms.
Setting up transitive product dependencies took 845ms.
Handling products took 33s, 333ms.
Running Probes took 18s, 67ms.
5355 probes encountered, 5 configure scripts executed, 5348 re-used from current run, 0 re-used from earlier run.
Property checking took 412ms.
Activity 'ModuleLoader' took 44s, 99ms.
Starting activity 'ModuleLoader'.
Project file loading and parsing took 123ms.
Preparing products took 0ms.
Setting up product dependencies took 10s, 76ms.
Setting up transitive product dependencies took 837ms.
Handling products took 32s, 798ms.
Running Probes took 17s, 543ms.
5355 probes encountered, 0 configure scripts executed, 0 re-used from current run, 5355 re-used from earlier run.
Property checking took 409ms.
Activity 'ModuleLoader' took 44s, 630ms.
Starting activity 'ModuleLoader'.
Project file loading and parsing took 214ms.
Preparing products took 0ms.
Setting up product dependencies took 1s, 644ms.
Setting up transitive product dependencies took 14ms.
Handling products took 14s, 267ms.
Running Probes took 11s, 736ms.
3577 probes encountered, 5 configure scripts executed, 3570 re-used from current run, 0 re-used from earlier run.
Property checking took 164ms.
Activity 'ModuleLoader' took 17s, 910ms.