Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Compilation times with Qt6
Forum Updated to NodeBB v4.3 + New Features

Compilation times with Qt6

Scheduled Pinned Locked Moved Solved General and Desktop
17 Posts 5 Posters 2.7k Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • A Offline
    A Offline
    Asperamanca
    wrote on last edited by
    #8

    I have now profiled compilation using Qt5 and Qt6 using vcperf.

    This shows that, e.g. including qchar.h used about 600 ms in Qt5, but almost 2500 ms in Qt6.
    For example, qchar.h now includes <functional> (which it didn't in Qt5), and that alone costs 600 ms.

    I think I'll look into using precompiled headers for Qt...

    JonBJ 1 Reply Last reply
    0
    • A Asperamanca

      I have now profiled compilation using Qt5 and Qt6 using vcperf.

      This shows that, e.g. including qchar.h used about 600 ms in Qt5, but almost 2500 ms in Qt6.
      For example, qchar.h now includes <functional> (which it didn't in Qt5), and that alone costs 600 ms.

      I think I'll look into using precompiled headers for Qt...

      JonBJ Online
      JonBJ Online
      JonB
      wrote on last edited by
      #9

      @Asperamanca said in Compilation times with Qt6:

      For example, qchar.h now includes <functional> (which it didn't in Qt5), and that alone costs 600 ms.

      Depressing :(
      I don't mean to be too mean, but most that I see about Qt6 depresses me. You seem to get not-a-lot-more at the expense of a lot of issues.... :(
      Sigh. This seems to be the way with much software when you "upgrade"....

      A 1 Reply Last reply
      0
      • JonBJ JonB

        @Asperamanca said in Compilation times with Qt6:

        For example, qchar.h now includes <functional> (which it didn't in Qt5), and that alone costs 600 ms.

        Depressing :(
        I don't mean to be too mean, but most that I see about Qt6 depresses me. You seem to get not-a-lot-more at the expense of a lot of issues.... :(
        Sigh. This seems to be the way with much software when you "upgrade"....

        A Offline
        A Offline
        Asperamanca
        wrote on last edited by
        #10

        @JonB
        There are a lot of improvements, new features and bugfixes, so for me it's more a mixed bag.
        And the compilation time goes down rapidly when using precompiled headers.

        jsulmJ 1 Reply Last reply
        0
        • A Asperamanca

          @JonB
          There are a lot of improvements, new features and bugfixes, so for me it's more a mixed bag.
          And the compilation time goes down rapidly when using precompiled headers.

          jsulmJ Online
          jsulmJ Online
          jsulm
          Lifetime Qt Champion
          wrote on last edited by
          #11

          @Asperamanca Would be interesting to compare compilation times of your project for MSVC and MinGW.

          https://forum.qt.io/topic/113070/qt-code-of-conduct

          A 1 Reply Last reply
          0
          • jsulmJ jsulm

            @Asperamanca Would be interesting to compare compilation times of your project for MSVC and MinGW.

            A Offline
            A Offline
            Asperamanca
            wrote on last edited by
            #12

            @jsulm
            Unfortunately, not easy to do, as my project won't build on MinGW out of the box. Old code, old defines...
            I have since read about Header Units, and C++20 Modules. I'll certainly suggest that Qt provide pre-generated Header Units that people already on C++20 can optionally use instead of #include for Qt headers.

            1 Reply Last reply
            0
            • A Asperamanca

              After upgrading my project from Qt5 to Qt6, I noticed a massive slowdown when compiling my project. Using cmake in Qt Creator, the project takes about twice as long to compile.
              Since my code hasn't changed that much, I suspect Qt header includes to cause the slowdown.

              Has anyone else noticed this?
              Any hints on how to improve compilation times?

              A Offline
              A Offline
              AlGrenadine
              wrote on last edited by
              #13

              @Asperamanca We face the same issues, our big cmake project build (which was already using precompiled headers) slowed down about 3x times slower when moving to Qt6.
              It may be related to Qt now using std containers now and std headers everywhere...
              If you find something for speeding this up please share :)

              A 1 Reply Last reply
              0
              • A AlGrenadine

                @Asperamanca We face the same issues, our big cmake project build (which was already using precompiled headers) slowed down about 3x times slower when moving to Qt6.
                It may be related to Qt now using std containers now and std headers everywhere...
                If you find something for speeding this up please share :)

                A Offline
                A Offline
                Asperamanca
                wrote on last edited by
                #14

                @AlGrenadine So, my next PC will be about 3x faster than the current one. That's currently my only solution :-(

                You can measure compile times using tools such as Compile Score (VS extension, but similar one certainly exist for other IDEs or command line builds). Maybe you can find some header files within your control that are slow to include, and can be optimized through separation and aggressive use of forward declarations...

                Christian EhrlicherC 1 Reply Last reply
                0
                • A Asperamanca

                  @AlGrenadine So, my next PC will be about 3x faster than the current one. That's currently my only solution :-(

                  You can measure compile times using tools such as Compile Score (VS extension, but similar one certainly exist for other IDEs or command line builds). Maybe you can find some header files within your control that are slow to include, and can be optimized through separation and aggressive use of forward declarations...

                  Christian EhrlicherC Online
                  Christian EhrlicherC Online
                  Christian Ehrlicher
                  Lifetime Qt Champion
                  wrote on last edited by
                  #15

                  That's the price compiling something with c++17 instead c++11 support - even though Qt6 is affected here much.

                  Qt Online Installer direct download: https://download.qt.io/official_releases/online_installers/
                  Visit the Qt Academy at https://academy.qt.io/catalog

                  A 1 Reply Last reply
                  1
                  • Christian EhrlicherC Christian Ehrlicher

                    That's the price compiling something with c++17 instead c++11 support - even though Qt6 is affected here much.

                    A Offline
                    A Offline
                    Asperamanca
                    wrote on last edited by
                    #16

                    @Christian-Ehrlicher Hoping for C++ Modules in Qt before I retire...

                    Christian EhrlicherC 1 Reply Last reply
                    0
                    • A Asperamanca

                      @Christian-Ehrlicher Hoping for C++ Modules in Qt before I retire...

                      Christian EhrlicherC Online
                      Christian EhrlicherC Online
                      Christian Ehrlicher
                      Lifetime Qt Champion
                      wrote on last edited by
                      #17

                      @Asperamanca said in Compilation times with Qt6:

                      Hoping for C++ Modules in Qt before I retire...

                      I would not bet on this - from my pov there is way to much work to be done before such a big framework as Qt can use them properly.

                      Qt Online Installer direct download: https://download.qt.io/official_releases/online_installers/
                      Visit the Qt Academy at https://academy.qt.io/catalog

                      1 Reply Last reply
                      0
                      • Christian EhrlicherC Christian Ehrlicher referenced this topic on

                      • Login

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • Users
                      • Groups
                      • Search
                      • Get Qt Extensions
                      • Unsolved