Details
-
Bug
-
Resolution: Done
-
P1: Critical
-
Qt Creator 2.8.0-rc
-
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