What is the reason for the difference between compiler calls with moc between Qbs and CMake/Ninja? It looks like Qbs is actually compiling the moc stuff separately while CMake/Ninja don't or rather they compile it as part of other sources somehow? It would explain both the longer time they take and the paralellism decline. At any rate that CMake/Ninja don't understand it could do it differently (more efficiently) is their flaw obviously. More generally though one could argue that the comparison is not really fair since CMake is not a build system (unlike Qbs) but just a build generator so it naturally cannot do as much in optimizing builds as Qbs (or any actual build system) can. No matter how hard you would try doing "CMake project description -> Ninja makefiles -> Ninja build" will always be inferior to "Qbs project description -> Qbs build" beacuse of that translation layer. Michael ______________________________________________________________
Od: "Christian Gagneraud" <chg...@gmail.com> Komu: "qbs" <qbs@qt-project.org> Datum: 22.07.2019 01:00 Předmět: Re: [Qbs] Qbs (way) faster than cmake (or benchmark issue)
On Tue, 16 Jul 2019 at 18:29, Christian Gagneraud <chg...@gmail.com> wrote: > > Hi there, > > I finally found time to start my qbs vs cmake build perf. > > What i found is that qbs beats cmake 'big time' on my build machine > and i was actually surprised, so surprised that i'm trying to find > where is the mistake. Here is a graph showing qtcreator build time vs number of parallel jobs, using cmake and qbs. Builds were done in a docker container (same for both), stock Ubuntu 19.04/amd64, all dependencies (inc. qbs tool and dev libs) installed using apt. Number of compilations were measured by generating a Clang compilation database and counting the number of entries: cmake: 2881 (2869) qbs: 4362 (2848) The first number is the number of compiler calls, the second number if the same but ignoring the pattern 'moc_'. Using 2 jobs: qbs: 26:30.78 cmake: 30:11.44 =>Cmake is 15% slower than qbs Using 56 jobs: qbs: 2:35.95 cmake: 4:33.79 => CMake is 75% slower than bqs At the 20 jobs mark, cmake start to stagnate, whereas qbs still make use of parallelism, at the 30 jobs mark, cmake completely stopped reducing overall build time, whereas qbs start to stagnate. At the 40 jobs mark, both systems are stale. Chris ---------- _______________________________________________ Qbs mailing list Qbs@qt-project.org https://lists.qt-project.org/listinfo/qbs <https://lists.qt-project.org/listinfo/qbs>
_______________________________________________ Qbs mailing list Qbs@qt-project.org https://lists.qt-project.org/listinfo/qbs