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

ClangCodeModel should cache its result

    XMLWordPrintable

Details

    • Suggestion
    • Resolution: Incomplete
    • Not Evaluated
    • None
    • Qt Creator 4.4.1, Qt Creator 4.5.0
    • C/C++/Obj-C++ Support
    • None
    • Qt Creator 4.4.1 and 4.5.0 on Mac OS X, Linux, Windows. This problem isn't related to the platform at all.

    Description

      Whenever CMake is run (or the qmake project is reparsed), Qt Creator starts reparsing everything. In large projects (actually, in any non-trivial project), this takes quite a bit of time.

      On the code base I work on, this takes around 10 minutes.

      Every time I add/remove/rename a file, CMake reruns triggering a full reparse, and I wait another 10 minutes.

      Every time I switch sessions, CMake reruns triggering a full reparse, and I wait another ten minutes.

      Even though only incremental changes happen (a file is added/removed/renamed) or nothing happens at all.

      The result of a parse should be stored on disk and linked to a Qt Creator session per project. Currently the parse result only exists in memory, and is completely regenerated every time a (small) thing in the project changes.

      I'd be happy that on a clean load or session switch, the previous parse result is just loaded. This may be related to the unecessary CMake run when loading a project that has previously been loaded before. It's just a waste of time and should be disabled.

      Attachments

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

        Activity

          People

            kandeler Christian Kandeler
            rubenvb_medicim Ruben Van Boxem
            Votes:
            1 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes