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

Indexing while typing blocks Qt Creator UI

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P1: Critical
    • Qt Creator 2.8.0
    • Qt Creator 2.8.0-rc
    • Quick / QML Support
    • None
    • Opensuse 12.2, gcc 4.7.1, built against Qt 4.8.4

    Description

      In 2.8 branch (now on 22e31f2b, seen this since some weeks), I've seen a major regression since 2.7 in indexing performance: QtCreator reindexes my project as I type, and each reindexing blocks the Qt Creator UI completely, making it quite hard to use.

      I can't share the project unfortunately, all I can say is that it has 170 QML(2) files, 184 .cpp and 145 .h files.

      OProfile doesn't give me anything useful, but randomly interrupting gdb while it blocks shows that's always in QmlJS:

      #0 0x00007fdb3c9af466 in QmlJS::Lexer::scanToken (this=0x7fff50f9c1f0) at parser/qmljslexer.cpp:679
      #1 0x00007fdb3c9acebd in QmlJS::Lexer::lex (this=0x7fff50f9c1f0) at parser/qmljslexer.cpp:173
      #2 0x00007fdb3c9b6217 in QmlJS::Parser::parse (this=0x7fff50f9c280, startToken=95) at parser/qmljsparser.cpp:175
      #3 0x00007fdb3c9d9a61 in QmlJS::Parser::parse (this=0x7fff50f9c280) at ../../libs/qmljs/parser/qmljsparser_p.h:122
      #4 0x00007fdb3ca27601 in QmlJS::TypeDescriptionReader::operator() (this=0x7fff50f9c440, objects=0x7fff50f9c570, moduleApis=0x7fff50f9c560) at qmljstypedescriptionreader.cpp:64
      #5 0x00007fdb3c9e5a96 in QmlJS::CppQmlTypesLoader::parseQmlTypeDescriptions (contents=..., newObjects=0x7fff50f9c570, newModuleApis=0x7fff50f9c560, errorMessage=0x7fff50f9c590,
      warningMessage=0x7fff50f9c580, fileName=...) at qmljsinterpreter.cpp:1301
      #6 0x00007fdb3b6873c5 in QmlJSTools::Internal::PluginDumper::loadQmltypesFile (this=0x2203b60, qmltypesFilePaths=..., libraryPath=..., libraryInfo=...)
      at qmljsplugindumper.cpp:401
      #7 0x00007fdb3b687a64 in QmlJSTools::Internal::PluginDumper::dump (this=0x2203b60, plugin=...) at qmljsplugindumper.cpp:436
      #8 0x00007fdb3b6856fa in QmlJSTools::Internal::PluginDumper::onLoadPluginTypes (this=0x2203b60, libraryPath=..., importPath=..., importUri=..., importVersion=...)
      at qmljsplugindumper.cpp:202
      #9 0x00007fdb3b6b186c in QmlJSTools::Internal::PluginDumper::qt_static_metacall (_o=0x2203b60, _c=QMetaObject::InvokeMetaMethod, _id=2, _a=0x7fda8c2a9ad0)
      at .moc/debug-shared/moc_qmljsplugindumper.cpp:68
      #10 0x00007fdb49c0ecab in QMetaCallEvent::placeMetaCall (this=0x7fda8c6a96a0, object=0x2203b60) at kernel/qobject.cpp:524

      #0 0x00007fdb3c9c0e01 in QmlJSGrammar::nt_action (state=580, nt=24) at parser/qmljsgrammar_p.h:181
      #1 0x00007fdb3c9bfb57 in QmlJS::Parser::parse (this=0x7fff50f9c280, startToken=95) at parser/qmljsparser.cpp:1696
      #2 0x00007fdb3c9d9a61 in QmlJS::Parser::parse (this=0x7fff50f9c280) at ../../libs/qmljs/parser/qmljsparser_p.h:122
      #3 0x00007fdb3ca27601 in QmlJS::TypeDescriptionReader::operator() (this=0x7fff50f9c440, objects=0x7fff50f9c570, moduleApis=0x7fff50f9c560) at qmljstypedescriptionreader.cpp:64
      #4 0x00007fdb3c9e5a96 in QmlJS::CppQmlTypesLoader::parseQmlTypeDescriptions (contents=..., newObjects=0x7fff50f9c570, newModuleApis=0x7fff50f9c560, errorMessage=0x7fff50f9c590,
      warningMessage=0x7fff50f9c580, fileName=...) at qmljsinterpreter.cpp:1301
      #5 0x00007fdb3b6873c5 in QmlJSTools::Internal::PluginDumper::loadQmltypesFile (this=0x2203b60, qmltypesFilePaths=..., libraryPath=..., libraryInfo=...)
      at qmljsplugindumper.cpp:401
      #6 0x00007fdb3b687a64 in QmlJSTools::Internal::PluginDumper::dump (this=0x2203b60, plugin=...) at qmljsplugindumper.cpp:436
      #7 0x00007fdb3b6856fa in QmlJSTools::Internal::PluginDumper::onLoadPluginTypes (this=0x2203b60, libraryPath=..., importPath=..., importUri=..., importVersion=...)
      at qmljsplugindumper.cpp:202
      #8 0x00007fdb3b6b186c in QmlJSTools::Internal::PluginDumper::qt_static_metacall (_o=0x2203b60, _c=QMetaObject::InvokeMetaMethod, _id=2, _a=0x7fda8d6ae880)
      at .moc/debug-shared/moc_qmljsplugindumper.cpp:68
      #9 0x00007fdb49c0ecab in QMetaCallEvent::placeMetaCall (this=0x7fda8c7c90a0, object=0x2203b60) at kernel/qobject.cpp:524

      #0 0x00007fdb3c9c5709 in QVarLengthArray<QStringRef, 4>::QVarLengthArray (this=0x7fff50f9b6b0, asize=0)
      at /home/frank/local/qt4-4.8.4-shared-debug/include/QtCore/qvarlengtharray.h:195
      #1 0x00007fdb3c9b5d66 in QmlJS::Parser::reparseAsQualifiedId (this=0x7fff50f9c280, expr=0x37fb2e0) at parser/qmljsparser.cpp:111
      #2 0x00007fdb3c9b9876 in QmlJS::Parser::parse (this=0x7fff50f9c280, startToken=95) at parser/qmljsparser.cpp:689
      #3 0x00007fdb3c9d9a61 in QmlJS::Parser::parse (this=0x7fff50f9c280) at ../../libs/qmljs/parser/qmljsparser_p.h:122
      #4 0x00007fdb3ca27601 in QmlJS::TypeDescriptionReader::operator() (this=0x7fff50f9c440, objects=0x7fff50f9c570, moduleApis=0x7fff50f9c560) at qmljstypedescriptionreader.cpp:64
      #5 0x00007fdb3c9e5a96 in QmlJS::CppQmlTypesLoader::parseQmlTypeDescriptions (contents=..., newObjects=0x7fff50f9c570, newModuleApis=0x7fff50f9c560, errorMessage=0x7fff50f9c590,
      warningMessage=0x7fff50f9c580, fileName=...) at qmljsinterpreter.cpp:1301
      #6 0x00007fdb3b6873c5 in QmlJSTools::Internal::PluginDumper::loadQmltypesFile (this=0x2203b60, qmltypesFilePaths=..., libraryPath=..., libraryInfo=...)
      at qmljsplugindumper.cpp:401
      #7 0x00007fdb3b687a64 in QmlJSTools::Internal::PluginDumper::dump (this=0x2203b60, plugin=...) at qmljsplugindumper.cpp:436
      #8 0x00007fdb3b6856fa in QmlJSTools::Internal::PluginDumper::onLoadPluginTypes (this=0x2203b60, libraryPath=..., importPath=..., importUri=..., importVersion=...)
      at qmljsplugindumper.cpp:202
      #9 0x00007fdb3b6b186c in QmlJSTools::Internal::PluginDumper::qt_static_metacall (_o=0x2203b60, _c=QMetaObject::InvokeMetaMethod, _id=2, _a=0x7fda8c0244a0)
      at .moc/debug-shared/moc_qmljsplugindumper.cpp:68
      #10 0x00007fdb49c0ecab in QMetaCallEvent::placeMetaCall (this=0x7fda8c710890, object=0x2203b60) at kernel/qobject.cpp:524
      #11 0x00007fdb49c0ff3d in QObject::event (this=0x2203b60, e=0x7fda8c710890) at kernel/qobject.cpp:1194
      #12 0x00007fdb4a5b7260 in QApplicationPrivate::notify_helper (this=0x1d88220, receiver=0x2203b60, e=0x7fda8c710890) at kernel/qapplication.cpp:4562

      Attachments

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

        Activity

          People

            fawzi Fawzi Mohamed
            frank.osterfeld Frank Osterfeld
            Votes:
            1 Vote for this issue
            Watchers:
            7 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes