Uploaded image for project: 'Qt Creator'
  1. Qt Creator
  2. QTCREATORBUG-27102

Calling "qbs.exe config" is slower than calling "qbs-config.exe"

    XMLWordPrintable

    Details

    • Platform/s:
      Windows
    • Commits:
      1a99f41fe8 (qt-creator/qt-creator/7.0) 1a99f41fe8 (qt-creator/qt-creator/master) 1a99f41fe8 (qt-creator/tqtc-qt-creator/7.0) 1a99f41fe8 (qt-creator/tqtc-qt-creator/master) 1a99f41fe8 (qt-creator/qt-creator/qds-3.3)

      Description

      Qt Creator calls "qbs config" a couple of times on the first start of Qt Creator with "fresh" settings. Or even on each start of Qt Creator if Qt versions for Android/WebAssembly are present.

      On Windows, the calling of "qbs.exe config" is considerably slower than the calling of "qbs-config.exe". On my machine it is ~130ms vs ~100ms.

      Here the qtc.utils.qtcprocess output:

      qbs.exe config
      qtc.utils.qtcprocess: Process 37 starting (non blocking): C:\ProgramData\chocolatey\bin\qbs.exe config --settings-dir C:/temp/android00089/QtProject/qtcreator --unset profiles.qtc_Qt_6_2_3_edbe2366
      qtc.utils.qtcprocess: Process 37 finished: result=0, ex=0, 0 bytes stdout, 0 bytes stderr, 135 ms elapsed
      qtc.utils.qtcprocess: Process 38 starting (non blocking): C:\ProgramData\chocolatey\bin\qbs.exe config --settings-dir C:/temp/android00089/QtProject/qtcreator preferences.qtcreator.kit.qt.qt6.623.wasm_32_kit ""\^""qtc_Qt_6_2_3_edbe2366"\^"""
      qtc.utils.qtcprocess: Process 38 finished: result=0, ex=0, 0 bytes stdout, 0 bytes stderr, 138 ms elapsed
      qtc.utils.qtcprocess: Process 40 starting (non blocking): C:\ProgramData\chocolatey\bin\qbs.exe --version
      qtc.utils.qtcprocess: Process 40 finished: result=0, ex=0, 7 bytes stdout, 0 bytes stderr, 89 ms elapsed
      qtc.utils.qtcprocess: Process 41 starting (non blocking): C:\ProgramData\chocolatey\bin\qbs.exe config --settings-dir C:/temp/android00089/QtProject/qtcreator --add-profile qtc_Qt_6_2_3_edbe2366 moduleProviders.Qt.qmakeFilePaths ""\^""C:/Qt/6.2.3/wasm_32/bin/qmake.bat"\^"""
      qtc.utils.qtcprocess: Process 41 finished: result=0, ex=0, 0 bytes stdout, 0 bytes stderr, 130 ms elapsed
      qtc.utils.qtcprocess: Process 42 starting (non blocking): C:\ProgramData\chocolatey\bin\qbs.exe config --settings-dir C:/temp/android00089/QtProject/qtcreator --unset profiles.qtc_Qt_6_3_0_c8ca7e00
      qtc.utils.qtcprocess: Process 42 finished: result=0, ex=0, 0 bytes stdout, 0 bytes stderr, 138 ms elapsed
      qtc.utils.qtcprocess: Process 43 starting (non blocking): C:\ProgramData\chocolatey\bin\qbs.exe config --settings-dir C:/temp/android00089/QtProject/qtcreator preferences.qtcreator.kit.qt.qt6.630.wasm_32_kit ""\^""qtc_Qt_6_3_0_c8ca7e00"\^"""
      qtc.utils.qtcprocess: Process 43 finished: result=0, ex=0, 0 bytes stdout, 0 bytes stderr, 138 ms elapsed
      

      The hacked version, where qbs-config is called directly

      qbs-config.exe
      qtc.utils.qtcprocess: Process 37 starting (non blocking): C:\ProgramData\chocolatey\bin\qbs-config.exe --settings-dir C:/temp/android00089/QtProject/qtcreator --unset profiles.qtc_Qt_6_2_3_edbe2366
      qtc.utils.qtcprocess: Process 37 finished: result=0, ex=0, 0 bytes stdout, 0 bytes stderr, 106 ms elapsed
      qtc.utils.qtcprocess: Process 38 starting (non blocking): C:\ProgramData\chocolatey\bin\qbs-config.exe --settings-dir C:/temp/android00089/QtProject/qtcreator preferences.qtcreator.kit.qt.qt6.623.wasm_32_kit ""\^""qtc_Qt_6_2_3_edbe2366"\^"""
      qtc.utils.qtcprocess: Process 38 finished: result=0, ex=0, 0 bytes stdout, 0 bytes stderr, 100 ms elapsed
      qtc.utils.qtcprocess: Process 39 starting (non blocking): C:\ProgramData\chocolatey\bin\qbs.exe --version
      qtc.utils.qtcprocess: Process 39 finished: result=0, ex=0, 7 bytes stdout, 0 bytes stderr, 102 ms elapsed
      qtc.utils.qtcprocess: Process 41 starting (non blocking): C:\ProgramData\chocolatey\bin\qbs-config.exe --settings-dir C:/temp/android00089/QtProject/qtcreator --add-profile qtc_Qt_6_2_3_edbe2366 moduleProviders.Qt.qmakeFilePaths ""\^""C:/Qt/6.2.3/wasm_32/bin/qmake.bat"\^"""
      qtc.utils.qtcprocess: Process 41 finished: result=0, ex=0, 0 bytes stdout, 0 bytes stderr, 99 ms elapsed
      qtc.utils.qtcprocess: Process 42 starting (non blocking): C:\ProgramData\chocolatey\bin\qbs-config.exe --settings-dir C:/temp/android00089/QtProject/qtcreator --unset profiles.qtc_Qt_6_3_0_c8ca7e00
      qtc.utils.qtcprocess: Process 42 finished: result=0, ex=0, 0 bytes stdout, 0 bytes stderr, 106 ms elapsed
      qtc.utils.qtcprocess: Process 43 starting (non blocking): C:\ProgramData\chocolatey\bin\qbs-config.exe --settings-dir C:/temp/android00089/QtProject/qtcreator preferences.qtcreator.kit.qt.qt6.630.wasm_32_kit ""\^""qtc_Qt_6_3_0_c8ca7e00"\^"""
      qtc.utils.qtcprocess: Process 43 finished: result=0, ex=0, 0 bytes stdout, 0 bytes stderr, 100 ms elapsed
      

      Could either QbsProjectManager call qbs-config directly, at least on Windows? Or could qbs be optimized, to relay the call to qbs-config without doing expensive things beforehand, such as instantiating Q*Application?

        Attachments

        For Gerrit Dashboard: QTCREATORBUG-27102
        # Subject Branch Project Status CR V

          Activity

            People

            Assignee:
            kandeler Christian Kandeler
            Reporter:
            portale Alessandro Portale
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved:

                Gerrit Reviews

                There are no open Gerrit changes