Details
-
Suggestion
-
Resolution: Unresolved
-
P2: Important
-
None
-
None
-
Windows 10 22H2
Description
[UPDATE]
The original report misinterpreted the .ninja_log data. This ticket now focusses on Unix Makefiles.
While the different ABIs need to be built sequentially due to a limitation with the Unix Makefiles generator (see QTBUG-127414), it should be possible to let the source files to be built in parallel (within that ABI).
[ORIGINAL REPORT]
Steps to test
This test uses the Charts with Widgets Gallery example (https://doc.qt.io/qt-6/qtcharts-chartsgallery-example.html ) because it contains a large number of *.cpp files.
- Configure the example with
DQT_ANDROID_BUILD_ALL_ABIS=ONand build it with -parallel 10 - Use the ninjatracing tool (https://github.com/nico/ninjatracing) to convert the .ninja_log file into a *.json file
- Load the *.json file with https://ui.perfetto.dev/
Outcomes
- The primary ABI (x86_64 in my screenshot) uses all 10 threads to compile the *.cpp files.
- The secondary ABIs uses single-threaded compilation only.
As a result, most available CPU cores sit idle when building for the secondary ABIs, making them take much longer to finish compared to the primary ABI.
This discrepancy is extremely noticeable on large projects.