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

Compilation speed decrease with Qt 6.2 compared to Qt 5.15.2

    XMLWordPrintable

Details

    • compile-time
    • Linux/X11, macOS, Windows
    • 21
    • Team 2 Foundation_Sprint 47, Team 2 Foundation_Sprint 48, Team Two Foundation Sprint 49, Team Two Foundation Sprint 50, Team Two Foundation Sprint 51, Team Two Foundation Sprint 52, Team B Foundation Sprint 53, Team B Foundation Sprint 55, Foundation PM Prioritized
    • 436501d87 (dev), 1e852bb49 (dev), cf8548779 (dev), f255960f9 (6.5), 668660079 (6.5), 273863894 (6.5), 408fbd3f2 (dev), 7de02e230 (6.6), c1acb67ff (dev)

    Description

      I've built Qt Creator 6 with the same git checkout, same CMake version, same ninja version with Qt 5.15.2 and Qt 6.2.0 with MinGW 8.1 and MSVC 2019 and both suffered a considerable compilation speed decrease. (Windows 10, Antivirus disabled, on a AMD Ryzen 9 3950X 16-Core Processor 3.49 GHz 64GB machine)

      No PCH

      Compiler Qt 5.15.2 Qt 6.2.0 Speed decrease
      MinGW 382s 509s -33%
      MSVC 309s 501s -62%

      My Qt Creator configure script looks like:

      if (CMAKE_ARGC LESS 4)
          message("Usage cmake -P " ${CMAKE_ARGV2} " <platform e.g. mingw/msvc>")
          return()
      endif()
      
      if (CMAKE_ARGV3 STREQUAL "mingw")
          set(QT_PLATFORM mingw81_64)
      elseif(CMAKE_ARGV3 STREQUAL "msvc")
          set(QT_PLATFORM msvc2019_64)
      endif()
      
      execute_process(COMMAND
          ${CMAKE_COMMAND}
          -D "CMAKE_PREFIX_PATH=c:/Qt/${CMAKE_ARGV3}/${QT_PLATFORM};c:/llvm/${CMAKE_ARGV3}"
          -D "CMAKE_INSTALL_PREFIX=${CMAKE_CURRENT_LIST_DIR}/install-${CMAKE_ARGV3}"
          -G Ninja
          -D CMAKE_BUILD_TYPE=Release
          -D BUILD_QBS=OFF
          -D WITH_TESTS=OFF
          -D BUILD_WITH_PCH=OFF
      
          -S repo
          -B build-${CMAKE_ARGV3}
      )
      

      The differences between the MinGW build.ninja for compiler flags were:

       build src/libs/3rdparty/cplusplus/CMakeFiles/3rd_cplusplus.dir/3rd_cplusplus_autogen/mocs_compilation.cpp.obj: CXX_COMPILER__3rd_cplusplus_Release C$:/Projects/QtCreator/build-mingw/src/libs/3rdparty/cplusplus/3rd_cplusplus_autogen/mocs_compilation.cpp || cmake_object_order_depends_target_3rd_cplusplus
      -  DEFINES = -DCPLUSPLUS_BUILD_LIB -DQT_CONCURRENT_LIB -DQT_CORE_LIB -DQT_CREATOR -DQT_DISABLE_DEPRECATED_BEFORE=0x050900 -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_JAVA_STYLE_ITERATORS -DQT_RESTRICTED_CAST_FROM_ASCII -DQT_USE_QSTRINGBUILDER -DQT_WIDGETS_LIB -DRELATIVE_DATA_PATH=\"../share/qtcreator\" -DRELATIVE_DOC_PATH=\"../share/doc/qtcreator\" -DRELATIVE_LIBEXEC_PATH=\"\" -DRELATIVE_PLUGIN_PATH=\"../lib/qtcreator/plugins\" -DUNICODE -DWIN32_LEAN_AND_MEAN -DWINVER=0x0602 -D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_WARNINGS -D_UNICODE -D_WIN32_WINNT=0x0602
      +  DEFINES = -DCPLUSPLUS_BUILD_LIB -DMINGW_HAS_SECURE_API=1 -DQT_CONCURRENT_LIB -DQT_CORE5COMPAT_LIB -DQT_CORE_LIB -DQT_CREATOR -DQT_DISABLE_DEPRECATED_BEFORE=0x050900 -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_JAVA_STYLE_ITERATORS -DQT_RESTRICTED_CAST_FROM_ASCII -DQT_USE_QSTRINGBUILDER -DQT_WIDGETS_LIB -DRELATIVE_DATA_PATH=\"../share/qtcreator\" -DRELATIVE_DOC_PATH=\"../share/doc/qtcreator\" -DRELATIVE_LIBEXEC_PATH=\"\" -DRELATIVE_PLUGIN_PATH=\"../lib/qtcreator/plugins\" -DUNICODE -DWIN32 -DWIN32_LEAN_AND_MEAN -DWIN64 -DWINVER=0x0602 -D_CRT_SECURE_NO_WARNINGS -D_ENABLE_EXTENDED_ALIGNED_STORAGE -D_SCL_SECURE_NO_WARNINGS -D_UNICODE -D_WIN32_WINNT=0x0601 -D_WIN32_WINNT=0x0602 -D_WIN64
         DEP_FILE = src\libs\3rdparty\cplusplus\CMakeFiles\3rd_cplusplus.dir\3rd_cplusplus_autogen\mocs_compilation.cpp.obj.d
      -  FLAGS = -O3 -DNDEBUG -fvisibility=hidden -fno-keep-inline-dllexport -std=c++17
      -  INCLUDES = -IC:/Projects/QtCreator/build-mingw/src/libs/3rdparty/cplusplus -IC:/Projects/QtCreator/repo/src/libs/3rdparty/cplusplus -IC:/Projects/QtCreator/build-mingw/src/libs/3rdparty/cplusplus/3rd_cplusplus_autogen/include -IC:/Qt/mingw/mingw81_64/include -IC:/Qt/mingw/mingw81_64/include/QtCore -IC:/Qt/mingw/mingw81_64/./mkspecs/win32-g++ -IC:/Projects/QtCreator/repo/src/libs -IC:/Qt/mingw/mingw81_64/include/QtConcurrent -IC:/Qt/mingw/mingw81_64/include/QtNetwork -IC:/Qt/mingw/mingw81_64/include/QtGui -IC:/Qt/mingw/mingw81_64/include/QtANGLE -IC:/Qt/mingw/mingw81_64/include/QtWidgets -IC:/Projects/QtCreator/repo/src/libs/3rdparty
      +  FLAGS = -O3 -DNDEBUG -fvisibility=hidden -fno-keep-inline-dllexport -Wno-error=invalid-offsetof -std=c++17
      +  INCLUDES = -IC:/Projects/QtCreator/build-mingw/src/libs/3rdparty/cplusplus -IC:/Projects/QtCreator/repo/src/libs/3rdparty/cplusplus -IC:/Projects/QtCreator/build-mingw/src/libs/3rdparty/cplusplus/3rd_cplusplus_autogen/include -IC:/Qt/mingw/mingw81_64/include/QtCore -IC:/Qt/mingw/mingw81_64/include -IC:/Qt/mingw/mingw81_64/mkspecs/win32-g++ -IC:/Projects/QtCreator/repo/src/libs -IC:/Qt/mingw/mingw81_64/include/QtConcurrent -IC:/Qt/mingw/mingw81_64/include/QtNetwork -IC:/Qt/mingw/mingw81_64/include/QtGui -IC:/Qt/mingw/mingw81_64/include/QtWidgets -IC:/Qt/mingw/mingw81_64/include/QtCore5Compat -IC:/Projects/QtCreator/repo/src/libs/3rdparty
         OBJECT_DIR = src\libs\3rdparty\cplusplus\CMakeFiles\3rd_cplusplus.dir
         OBJECT_FILE_DIR = src\libs\3rdparty\cplusplus\CMakeFiles\3rd_cplusplus.dir\3rd_cplusplus_autogen
         TARGET_COMPILE_PDB = src\libs\3rdparty\cplusplus\CMakeFiles\3rd_cplusplus.dir\
         TARGET_PDB = ""
      

      And for MSVC build.ninja:

       build src\libs\3rdparty\cplusplus\CMakeFiles\3rd_cplusplus.dir\3rd_cplusplus_autogen\mocs_compilation.cpp.obj: CXX_COMPILER__3rd_cplusplus_Release C$:\Projects\QtCreator\build-msvc\src\libs\3rdparty\cplusplus\3rd_cplusplus_autogen\mocs_compilation.cpp || cmake_object_order_depends_target_3rd_cplusplus
      -  DEFINES = -DCPLUSPLUS_BUILD_LIB -DQT_CONCURRENT_LIB -DQT_CORE_LIB -DQT_CREATOR -DQT_DISABLE_DEPRECATED_BEFORE=0x050900 -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_JAVA_STYLE_ITERATORS -DQT_RESTRICTED_CAST_FROM_ASCII -DQT_USE_QSTRINGBUILDER -DQT_WIDGETS_LIB -DRELATIVE_DATA_PATH=\"../share/qtcreator\" -DRELATIVE_DOC_PATH=\"../share/doc/qtcreator\" -DRELATIVE_LIBEXEC_PATH=\"\" -DRELATIVE_PLUGIN_PATH=\"../lib/qtcreator/plugins\" -DUNICODE -DWIN32_LEAN_AND_MEAN -DWINVER=0x0602 -D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_WARNINGS -D_UNICODE -D_WIN32_WINNT=0x0602
      -  FLAGS = /DWIN32 /D_WINDOWS /W3 /GR /EHsc /MD /O2 /Ob2 /DNDEBUG /permissive- /Zc:__cplusplus -std:c++17
      -  INCLUDES = -IC:\Projects\QtCreator\build-msvc\src\libs\3rdparty\cplusplus -IC:\Projects\QtCreator\repo\src\libs\3rdparty\cplusplus -IC:\Projects\QtCreator\build-msvc\src\libs\3rdparty\cplusplus\3rd_cplusplus_autogen\include -IC:\Qt\msvc\msvc2019_64\include -IC:\Qt\msvc\msvc2019_64\include\QtCore -IC:\Qt\msvc\msvc2019_64\.\mkspecs\win32-msvc -IC:\Projects\QtCreator\repo\src\libs -IC:\Qt\msvc\msvc2019_64\include\QtConcurrent -IC:\Qt\msvc\msvc2019_64\include\QtNetwork -IC:\Qt\msvc\msvc2019_64\include\QtGui -IC:\Qt\msvc\msvc2019_64\include\QtANGLE -IC:\Qt\msvc\msvc2019_64\include\QtWidgets -IC:\Projects\QtCreator\repo\src\libs\3rdparty
      +  DEFINES = -DCPLUSPLUS_BUILD_LIB -DQT_CONCURRENT_LIB -DQT_CORE5COMPAT_LIB -DQT_CORE_LIB -DQT_CREATOR -DQT_DISABLE_DEPRECATED_BEFORE=0x050900 -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_JAVA_STYLE_ITERATORS -DQT_RESTRICTED_CAST_FROM_ASCII -DQT_USE_QSTRINGBUILDER -DQT_WIDGETS_LIB -DRELATIVE_DATA_PATH=\"../share/qtcreator\" -DRELATIVE_DOC_PATH=\"../share/doc/qtcreator\" -DRELATIVE_LIBEXEC_PATH=\"\" -DRELATIVE_PLUGIN_PATH=\"../lib/qtcreator/plugins\" -DUNICODE -DWIN32 -DWIN32_LEAN_AND_MEAN -DWIN64 -DWINVER=0x0602 -D_CRT_SECURE_NO_WARNINGS -D_ENABLE_EXTENDED_ALIGNED_STORAGE -D_SCL_SECURE_NO_WARNINGS -D_UNICODE -D_WIN32_WINNT=0x0602 -D_WIN64
      +  FLAGS = /DWIN32 /D_WINDOWS /W3 /GR /EHsc /MD /O2 /Ob2 /DNDEBUG -Zc:__cplusplus -permissive- -utf-8 -std:c++17
      +  INCLUDES = -IC:\Projects\QtCreator\build-msvc\src\libs\3rdparty\cplusplus -IC:\Projects\QtCreator\repo\src\libs\3rdparty\cplusplus -IC:\Projects\QtCreator\build-msvc\src\libs\3rdparty\cplusplus\3rd_cplusplus_autogen\include -IC:\Qt\msvc\msvc2019_64\include\QtCore -IC:\Qt\msvc\msvc2019_64\include -IC:\Qt\msvc\msvc2019_64\mkspecs\win32-msvc -IC:\Projects\QtCreator\repo\src\libs -IC:\Qt\msvc\msvc2019_64\include\QtConcurrent -IC:\Qt\msvc\msvc2019_64\include\QtNetwork -IC:\Qt\msvc\msvc2019_64\include\QtGui -IC:\Qt\msvc\msvc2019_64\include\QtWidgets -IC:\Qt\msvc\msvc2019_64\include\QtCore5Compat -IC:\Projects\QtCreator\repo\src\libs\3rdparty
         OBJECT_DIR = src\libs\3rdparty\cplusplus\CMakeFiles\3rd_cplusplus.dir
         OBJECT_FILE_DIR = src\libs\3rdparty\cplusplus\CMakeFiles\3rd_cplusplus.dir\3rd_cplusplus_autogen
         TARGET_COMPILE_PDB = src\libs\3rdparty\cplusplus\CMakeFiles\3rd_cplusplus.dir\
         TARGET_PDB = ""
      

      A GitHub Actions build with 0% ccache usually was taking 2 1/2 hours, but now the MSVC build jumped to 4hours.

      With PCH

      I've compiled with -D BUILD_WITH_PCH=ON and the results are below:

      Compiler Qt 5.15.2 Qt 6.2.0 Speed decrease
      MinGW 354s 447s -26%
      MSVC 213s 341s -60%

      With ccache

      This compilation was done without pch but with ccache 4.4.1.

         -D BUILD_WITH_PCH=OFF
         -D CMAKE_C_COMPILER_LAUNCHER=ccache
         -D CMAKE_CXX_COMPILER_LAUNCHER=ccache
      

       

      Compiler Qt 5.15.2 cold cache Qt 5.15.2 warm cace Qt 6.2.0 cold cache Qt 6.2.0 warm cache Speed decrease warm cache
      MinGW 559s 208s 668s 230s -10%
      MSVC 389s 91s 589s 110s -20%

      The ccache test would mean that the compilation was skipped and only moc and linking steps were present.

      The linker flags for CMakeProjectManager.dll changed like this:

      MSVC:

      src\plugins\cmakeprojectmanager\CMakeFiles\CMakeProjectManager.dir\cmakeindenter.cpp.obj src\plugins\cmakeprojectmanager\CMakeFiles\CMakeProjectManager.dir\cmakekitinformation.cpp.obj src\plugins\cmakeprojectmanager\CMakeFiles\CMakeProjectManager.dir\cmakelocatorfilter.cpp.obj src\plugins\cmakeprojectmanager\CMakeFiles\CMakeProjectManager.dir\cmakeparser.cpp.obj src\plugins\cmakeprojectmanager\CMakeFiles\CMakeProjectManager.dir\cmakeprocess.cpp.obj src\plugins\cmakeprojectmanager\CMakeFiles\CMakeProjectManager.dir\cmakeproject.cpp.obj src\plugins\cmakeprojectmanager\CMakeFiles\CMakeProjectManager.dir\cmakeprojectimporter.cpp.obj src\plugins\cmakeprojectmanager\CMakeFiles\CMakeProjectManager.dir\cmakeprojectmanager.cpp.obj src\plugins\cmakeprojectmanager\CMakeFiles\CMakeProjectManager.dir\cmakeprojectnodes.cpp.obj src\plugins\cmakeprojectmanager\CMakeFiles\CMakeProjectManager.dir\cmakeprojectplugin.cpp.obj src\plugins\cmakeprojectmanager\CMakeFiles\CMakeProjectManager.dir\cmakesettingspage.cpp.obj src\plugins\cmakeprojectmanager\CMakeFiles\CMakeProjectManager.dir\cmakespecificsettings.cpp.obj src\plugins\cmakeprojectmanager\CMakeFiles\CMakeProjectManager.dir\cmaketool.cpp.obj src\plugins\cmakeprojectmanager\CMakeFiles\CMakeProjectManager.dir\cmaketoolmanager.cpp.obj src\plugins\cmakeprojectmanager\CMakeFiles\CMakeProjectManager.dir\cmaketoolsettingsaccessor.cpp.obj src\plugins\cmakeprojectmanager\CMakeFiles\CMakeProjectManager.dir\configmodel.cpp.obj src\plugins\cmakeprojectmanager\CMakeFiles\CMakeProjectManager.dir\configmodelitemdelegate.cpp.obj src\plugins\cmakeprojectmanager\CMakeFiles\CMakeProjectManager.dir\fileapidataextractor.cpp.obj src\plugins\cmakeprojectmanager\CMakeFiles\CMakeProjectManager.dir\fileapiparser.cpp.obj src\plugins\cmakeprojectmanager\CMakeFiles\CMakeProjectManager.dir\fileapireader.cpp.obj src\plugins\cmakeprojectmanager\CMakeFiles\CMakeProjectManager.dir\projecttreehelper.cpp.obj src\plugins\cmakeprojectmanager\CMakeFiles\CMakeProjectManager.dir\CMakeProjectManager_autogen\EWIEGA46WW\qrc_cmakeproject.cpp.obj || bin\Aggregation.dll bin\CPlusPlus.dll bin\ClangSupport.dll bin\ExtensionSystem.dll bin\KSyntaxHighlighting.dll bin\LanguageUtils.dll bin\ProParser.dll bin\QmlJS.dll bin\Sqlite.dll bin\Utils.dll lib\qtcreator\plugins\Core.dll lib\qtcreator\plugins\CppEditor.dll lib\qtcreator\plugins\ProjectExplorer.dll lib\qtcreator\plugins\QtSupport.dll lib\qtcreator\plugins\ResourceEditor.dll lib\qtcreator\plugins\TextEditor.dll src\libs\3rdparty\cplusplus\3rd_cplusplus src\plugins\cmakeprojectmanager\CMakeProjectManager_autogen src\plugins\cmakeprojectmanager\CMakeProjectManager_autogen_timestamp_deps
         LANGUAGE_COMPILE_FLAGS = /DWIN32 /D_WINDOWS /W3 /GR /EHsc /MD /O2 /Ob2 /DNDEBUG
         LINK_FLAGS = /machine:x64 /INCREMENTAL:NO
      -  LINK_LIBRARIES = bin\QmlJS.lib  lib\qtcreator\plugins\CppEditor.lib  lib\qtcreator\plugins\QtSupport.lib  lib\qtcreator\plugins\ResourceEditor.lib  bin\LanguageUtils.lib  bin\CPlusPlus.lib  bin\ClangSupport.lib  bin\Sqlite.lib  lib\qtcreator\plugins\ProjectExplorer.lib  lib\qtcreator\plugins\TextEditor.lib  lib\qtcreator\plugins\Core.lib  bin\ExtensionSystem.lib  bin\Aggregation.lib  bin\KSyntaxHighlighting.lib  bin\ProParser.lib  bin\Utils.lib  C:\Qt\msvc\msvc2019_64\lib\Qt5Widgets.lib  C:\Qt\msvc\msvc2019_64\lib\Qt5Gui.lib  C:\Qt\msvc\msvc2019_64\lib\Qt5Concurrent.lib  C:\Qt\msvc\msvc2019_64\lib\Qt5Network.lib  C:\Qt\msvc\msvc2019_64\lib\Qt5Core.lib  kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib
      +  LINK_LIBRARIES = bin\QmlJS.lib  lib\qtcreator\plugins\CppEditor.lib  lib\qtcreator\plugins\QtSupport.lib  lib\qtcreator\plugins\ResourceEditor.lib  bin\LanguageUtils.lib  bin\CPlusPlus.lib  bin\ClangSupport.lib  bin\Sqlite.lib  lib\qtcreator\plugins\ProjectExplorer.lib  lib\qtcreator\plugins\TextEditor.lib  lib\qtcreator\plugins\Core.lib  bin\ExtensionSystem.lib  bin\Aggregation.lib  bin\KSyntaxHighlighting.lib  bin\ProParser.lib  bin\Utils.lib  C:\Qt\msvc\msvc2019_64\lib\Qt6Widgets.lib  C:\Qt\msvc\msvc2019_64\lib\Qt6Gui.lib  d3d11.lib  dxgi.lib  dxguid.lib  C:\Qt\msvc\msvc2019_64\lib\Qt6Concurrent.lib  C:\Qt\msvc\msvc2019_64\lib\Qt6Core5Compat.lib  C:\Qt\msvc\msvc2019_64\lib\Qt6Network.lib  ws2_32.lib  C:\Qt\msvc\msvc2019_64\lib\Qt6Core.lib  mpr.lib  userenv.lib  kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib
         OBJECT_DIR = src\plugins\cmakeprojectmanager\CMakeFiles\CMakeProjectManager.dir
       

      MinGW:

       build lib/qtcreator/plugins/libCMakeProjectManager.dll lib/qtcreator/plugins/libCMakeProjectManager.dll.a: CXX_SHARED_LIBRARY_LINKER__CMakeProjectManager_Release src/plugins/cmakeprojectmanager/CMakeFiles/CMakeProjectManager.dir/CMakeProjectManager_autogen/mocs_compilation.cpp.obj src/plugins/cmakeprojectmanager/CMakeFiles/CMakeProjectManager.dir/builddirparameters.cpp.obj src/plugins/cmakeprojectmanager/CMakeFiles/CMakeProjectManager.dir/cmakeautocompleter.cpp.obj src/plugins/cmakeprojectmanager/CMakeFiles/CMakeProjectManager.dir/cmakebuildconfiguration.cpp.obj src/plugins/cmakeprojectmanager/CMakeFiles/CMakeProjectManager.dir/cmakebuildsystem.cpp.obj src/plugins/cmakeprojectmanager/CMakeFiles/CMakeProjectManager.dir/cmakebuildstep.cpp.obj src/plugins/cmakeprojectmanager/CMakeFiles/CMakeProjectManager.dir/cmakeconfigitem.cpp.obj src/plugins/cmakeprojectmanager/CMakeFiles/CMakeProjectManager.dir/cmakeeditor.cpp.obj src/plugins/cmakeprojectmanager/CMakeFiles/CMakeProjectManager.dir/cmakefilecompletionassist.cpp.obj src/plugins/cmakeprojectmanager/CMakeFiles/CMakeProjectManager.dir/cmakeindenter.cpp.obj src/plugins/cmakeprojectmanager/CMakeFiles/CMakeProjectManager.dir/cmakekitinformation.cpp.obj src/plugins/cmakeprojectmanager/CMakeFiles/CMakeProjectManager.dir/cmakelocatorfilter.cpp.obj src/plugins/cmakeprojectmanager/CMakeFiles/CMakeProjectManager.dir/cmakeparser.cpp.obj src/plugins/cmakeprojectmanager/CMakeFiles/CMakeProjectManager.dir/cmakeprocess.cpp.obj src/plugins/cmakeprojectmanager/CMakeFiles/CMakeProjectManager.dir/cmakeproject.cpp.obj src/plugins/cmakeprojectmanager/CMakeFiles/CMakeProjectManager.dir/cmakeprojectimporter.cpp.obj src/plugins/cmakeprojectmanager/CMakeFiles/CMakeProjectManager.dir/cmakeprojectmanager.cpp.obj src/plugins/cmakeprojectmanager/CMakeFiles/CMakeProjectManager.dir/cmakeprojectnodes.cpp.obj src/plugins/cmakeprojectmanager/CMakeFiles/CMakeProjectManager.dir/cmakeprojectplugin.cpp.obj src/plugins/cmakeprojectmanager/CMakeFiles/CMakeProjectManager.dir/cmakesettingspage.cpp.obj src/plugins/cmakeprojectmanager/CMakeFiles/CMakeProjectManager.dir/cmakespecificsettings.cpp.obj src/plugins/cmakeprojectmanager/CMakeFiles/CMakeProjectManager.dir/cmaketool.cpp.obj src/plugins/cmakeprojectmanager/CMakeFiles/CMakeProjectManager.dir/cmaketoolmanager.cpp.obj src/plugins/cmakeprojectmanager/CMakeFiles/CMakeProjectManager.dir/cmaketoolsettingsaccessor.cpp.obj src/plugins/cmakeprojectmanager/CMakeFiles/CMakeProjectManager.dir/configmodel.cpp.obj src/plugins/cmakeprojectmanager/CMakeFiles/CMakeProjectManager.dir/configmodelitemdelegate.cpp.obj src/plugins/cmakeprojectmanager/CMakeFiles/CMakeProjectManager.dir/fileapidataextractor.cpp.obj src/plugins/cmakeprojectmanager/CMakeFiles/CMakeProjectManager.dir/fileapiparser.cpp.obj src/plugins/cmakeprojectmanager/CMakeFiles/CMakeProjectManager.dir/fileapireader.cpp.obj src/plugins/cmakeprojectmanager/CMakeFiles/CMakeProjectManager.dir/projecttreehelper.cpp.obj src/plugins/cmakeprojectmanager/CMakeFiles/CMakeProjectManager.dir/CMakeProjectManager_autogen/EWIEGA46WW/qrc_cmakeproject.cpp.obj || bin/libAggregation.dll bin/libCPlusPlus.dll bin/libClangSupport.dll bin/libExtensionSystem.dll bin/libKSyntaxHighlighting.dll bin/libLanguageUtils.dll bin/libProParser.dll bin/libQmlJS.dll bin/libSqlite.dll bin/libUtils.dll lib/qtcreator/plugins/libCore.dll lib/qtcreator/plugins/libCppEditor.dll lib/qtcreator/plugins/libProjectExplorer.dll lib/qtcreator/plugins/libQtSupport.dll lib/qtcreator/plugins/libResourceEditor.dll lib/qtcreator/plugins/libTextEditor.dll src/libs/3rdparty/cplusplus/3rd_cplusplus src/plugins/cmakeprojectmanager/CMakeProjectManager_autogen src/plugins/cmakeprojectmanager/CMakeProjectManager_autogen_timestamp_deps
         LANGUAGE_COMPILE_FLAGS = -O3 -DNDEBUG
      -  LINK_LIBRARIES = bin/libQmlJS.dll.a  lib/qtcreator/plugins/libCppEditor.dll.a  lib/qtcreator/plugins/libQtSupport.dll.a  lib/qtcreator/plugins/libResourceEditor.dll.a  bin/libLanguageUtils.dll.a  bin/libCPlusPlus.dll.a  bin/libClangSupport.dll.a  bin/libSqlite.dll.a  lib/qtcreator/plugins/libProjectExplorer.dll.a  lib/qtcreator/plugins/libTextEditor.dll.a  lib/qtcreator/plugins/libCore.dll.a  bin/libExtensionSystem.dll.a  bin/libAggregation.dll.a  bin/libKSyntaxHighlighting.dll.a  bin/libProParser.dll.a  bin/libUtils.dll.a  C:/Qt/mingw/mingw81_64/lib/libQt5Widgets.a  C:/Qt/mingw/mingw81_64/lib/libQt5Gui.a  C:/Qt/mingw/mingw81_64/lib/libQt5Concurrent.a  C:/Qt/mingw/mingw81_64/lib/libQt5Network.a  C:/Qt/mingw/mingw81_64/lib/libQt5Core.a  -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32
      +  LINK_LIBRARIES = bin/libQmlJS.dll.a  lib/qtcreator/plugins/libCppEditor.dll.a  lib/qtcreator/plugins/libQtSupport.dll.a  lib/qtcreator/plugins/libResourceEditor.dll.a  bin/libLanguageUtils.dll.a  bin/libCPlusPlus.dll.a  bin/libClangSupport.dll.a  bin/libSqlite.dll.a  lib/qtcreator/plugins/libProjectExplorer.dll.a  lib/qtcreator/plugins/libTextEditor.dll.a  lib/qtcreator/plugins/libCore.dll.a  bin/libExtensionSystem.dll.a  bin/libAggregation.dll.a  bin/libKSyntaxHighlighting.dll.a  bin/libProParser.dll.a  bin/libUtils.dll.a  C:/Qt/mingw/mingw81_64/lib/libQt6Widgets.a  C:/Qt/mingw/mingw81_64/lib/libQt6Gui.a  -ld3d11  -ldxgi  -ldxguid  C:/Qt/mingw/mingw81_64/lib/libQt6Concurrent.a  C:/Qt/mingw/mingw81_64/lib/libQt6Core5Compat.a  C:/Qt/mingw/mingw81_64/lib/libQt6Network.a  -lws2_32  C:/Qt/mingw/mingw81_64/lib/libQt6Core.a  -lmpr  -luserenv  -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32
         OBJECT_DIR = src\plugins\cmakeprojectmanager\CMakeFiles\CMakeProjectManager.dir
      

      Build artifacts

      I've uploaded the build artifacts at: QtCreator-build-tests-QTBUG-97601.7z (1.90 GB in size, 19.4 GB unpacked)

       

      Mac

      Building with Mac On macOS it twice as bad as well: Attached is the comparison spreadsheet. Data in spreadsheet is recorded with samep project  with Qt 5 and Qt 6.
      * qmake is used.
      * The qmake step is not part of the times recorded (only make)
      * C++17 is specified in the project for both Qt 5 and Qt 6.
      * Precompiled headers are used in both Qt 5 and Qt 6.

       

      Attachments

        1. clang-time-trace.Qt5
          17 kB
        2. clang-time-trace.Qt6
          16 kB
        3. ETW1.png
          ETW1.png
          36 kB
        4. hellowidgets_5_15_5.json
          212 kB
        5. hellowidgets_6_2_0.json
          271 kB
        6. Qt6_build_time_regressions (1).xlsx
          11 kB

        Issue Links

          For Gerrit Dashboard: QTBUG-97601
          # Subject Branch Project Status CR V

          Activity

            People

              mmutz Marc Mutz
              cadam Cristian Adam
              Vladimir Minenko Vladimir Minenko
              Votes:
              20 Vote for this issue
              Watchers:
              44 Start watching this issue

              Dates

                Created:
                Updated:

                Gerrit Reviews

                  There are 3 open Gerrit changes