Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-138111

Android multi-ABI builds: Enable parallel compilation of source files for "secondary" ABIs

    XMLWordPrintable

Details

    • Android

    Description

      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.

      1. Configure the example with DQT_ANDROID_BUILD_ALL_ABIS=ON and build it with -parallel 10
      2. Use the ninjatracing tool (https://github.com/nico/ninjatracing) to convert the .ninja_log file into a *.json file
      3. 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.

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            qtbuildsystem Qt Build System Team
            skoh-qt Sze Howe Koh
            Votes:
            1 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:

              Gerrit Reviews

                There are no open Gerrit changes