This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.
Now when user edits a file and presses Ctrl-space, file is preprocessed several times before completion result is shown. This slows down completion. This amount (of preprocessor passes the same file on completion) should be reduced - ideally to 1.
Righ now I see 5 passes (2 of them are in parallel, so we can think that we have 4 passes now): 1) In parallel: "Code Model Parser 0: ONE FILE Reparsing /home/vkvashin/NetBeansProjects/00001/f00001.c" at org.netbeans.modules.cnd.apt.support.ClankDriver.preprocess(ClankDriver.java:98) at org.netbeans.modules.cnd.modelimpl.parser.clank.ClankTokenStreamProducer.getTokenStream(ClankTokenStreamProducer.java:148) at org.netbeans.modules.cnd.modelimpl.csm.core.FileImpl.doParse(FileImpl.java:1448) at org.netbeans.modules.cnd.modelimpl.csm.core.FileImpl._reparse(FileImpl.java:955) at org.netbeans.modules.cnd.modelimpl.csm.core.FileImpl.ensureParsedImpl(FileImpl.java:742) at org.netbeans.modules.cnd.modelimpl.csm.core.FileImpl.ensureParsed(FileImpl.java:624) at org.netbeans.modules.cnd.modelimpl.csm.core.ParserThread._run(ParserThread.java:148) at org.netbeans.modules.cnd.modelimpl.csm.core.ParserThread.run(ParserThread.java:74) at org.netbeans.modules.cnd.modelimpl.csm.core.ParserThreadManager$Wrapper.run(ParserThreadManager.java:92) at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1443) at org.netbeans.modules.openide.util.GlobalLookup.execute(GlobalLookup.java:68) at org.openide.util.lookup.Lookups.executeWith(Lookups.java:303) at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:2058) and "Code Completion (find declaration at /home/vkvashin/NetBeansProjects/00001/f00001.c[7,15], token "<unknown>")" at org.netbeans.modules.cnd.apt.support.ClankDriver.preprocess(ClankDriver.java:98) at org.netbeans.modules.cnd.modelimpl.parser.clank.ClankTokenStreamProducer.getTokenStream(ClankTokenStreamProducer.java:148) at org.netbeans.modules.cnd.modelimpl.csm.core.FileImpl.createAndCacheFullTokenStream(FileImpl.java:1185) at org.netbeans.modules.cnd.modelimpl.csm.core.FileImpl.getTokenStream(FileImpl.java:1238) at org.netbeans.modules.cnd.modelimpl.impl.services.MacroExpansionDocProviderImpl.getFileTokenSequence(MacroExpansionDocProviderImpl.java:852) at org.netbeans.modules.cnd.modelimpl.impl.services.MacroExpansionDocProviderImpl.expand(MacroExpansionDocProviderImpl.java:509) at org.netbeans.modules.cnd.modelimpl.impl.services.MacroExpansionDocProviderImpl.getMacroTable(MacroExpansionDocProviderImpl.java:1536) at org.netbeans.modules.cnd.modelimpl.impl.services.MacroExpansionDocProviderImpl.expand(MacroExpansionDocProviderImpl.java:331) at org.netbeans.modules.cnd.api.model.services.CsmMacroExpansion.expand(CsmMacroExpansion.java:161) at org.netbeans.modules.cnd.completion.cplusplus.ext.CsmExpandedTokenProcessor.create(CsmExpandedTokenProcessor.java:101) at org.netbeans.modules.cnd.completion.cplusplus.ext.CsmExpandedTokenProcessor.create(CsmExpandedTokenProcessor.java:93) at org.netbeans.modules.cnd.completion.cplusplus.ext.CsmCompletionQuery.processTokensInFile(CsmCompletionQuery.java:723) at org.netbeans.modules.cnd.completion.cplusplus.ext.CsmCompletionQuery.queryImpl(CsmCompletionQuery.java:563) at org.netbeans.modules.cnd.completion.cplusplus.ext.CsmCompletionQuery.query(CsmCompletionQuery.java:527) at org.netbeans.modules.cnd.completion.cplusplus.ext.CsmCompletionQuery.query(CsmCompletionQuery.java:520) at org.netbeans.modules.cnd.completion.csm.CompletionUtilities.findItemsReferencedAtCaretPos(CompletionUtilities.java:163) at org.netbeans.modules.cnd.completion.impl.xref.ReferencesSupport.findDeclaration(ReferencesSupport.java:491) at org.netbeans.modules.cnd.completion.impl.xref.ReferencesSupport.findDeclaration(ReferencesSupport.java:428) at org.netbeans.modules.cnd.completion.impl.xref.ReferencesSupport.findDeclaration(ReferencesSupport.java:266) at org.netbeans.modules.cnd.completion.cplusplus.CsmCompletionProvider$DocumentationQuery.query(CsmCompletionProvider.java:571) at org.netbeans.spi.editor.completion.support.AsyncCompletionTask.run(AsyncCompletionTask.java:223) at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1443) at org.netbeans.modules.openide.util.GlobalLookup.execute(GlobalLookup.java:68) at org.openide.util.lookup.Lookups.executeWith(Lookups.java:303) at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:2058) 2) "Code Model Parser 0: ONE FILE Reparsing /home/vkvashin/NetBeansProjects/00001/f00001.c" at org.netbeans.modules.cnd.apt.support.ClankDriver.preprocess(ClankDriver.java:98) at org.netbeans.modules.cnd.modelimpl.parser.clank.ClankTokenStreamProducer.getTokenStream(ClankTokenStreamProducer.java:148) at org.netbeans.modules.cnd.modelimpl.csm.core.FileImpl.doParse(FileImpl.java:1448) at org.netbeans.modules.cnd.modelimpl.csm.core.FileImpl._reparse(FileImpl.java:955) at org.netbeans.modules.cnd.modelimpl.csm.core.FileImpl.ensureParsedImpl(FileImpl.java:742) at org.netbeans.modules.cnd.modelimpl.csm.core.FileImpl.ensureParsed(FileImpl.java:624) at org.netbeans.modules.cnd.modelimpl.csm.core.ParserThread._run(ParserThread.java:148) at org.netbeans.modules.cnd.modelimpl.csm.core.ParserThread.run(ParserThread.java:74) at org.netbeans.modules.cnd.modelimpl.csm.core.ParserThreadManager$Wrapper.run(ParserThreadManager.java:92) at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1443) at org.netbeans.modules.openide.util.GlobalLookup.execute(GlobalLookup.java:68) at org.openide.util.lookup.Lookups.executeWith(Lookups.java:303) at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:2058) 3) "Code Completion" at org.netbeans.modules.cnd.apt.support.ClankDriver.preprocess(ClankDriver.java:98) at org.netbeans.modules.cnd.modelimpl.parser.clank.ClankMacroUsagesProducer.getMacroUsages(ClankMacroUsagesProducer.java:100) at org.netbeans.modules.cnd.modelimpl.parser.clank.ClankFileInfoQuerySupport.getMacroUsages(ClankFileInfoQuerySupport.java:83) at org.netbeans.modules.cnd.modelimpl.impl.services.FileInfoQueryImpl.getMacroUsages(FileInfoQueryImpl.java:331) at org.netbeans.modules.cnd.completion.cplusplus.ext.CsmExpandedTokenProcessor.create(CsmExpandedTokenProcessor.java:91) at org.netbeans.modules.cnd.completion.cplusplus.ext.CsmCompletionQuery.processTokensInFile(CsmCompletionQuery.java:723) at org.netbeans.modules.cnd.completion.cplusplus.ext.CsmCompletionQuery.queryImpl(CsmCompletionQuery.java:563) at org.netbeans.modules.cnd.completion.cplusplus.ext.CsmCompletionQuery.query(CsmCompletionQuery.java:527) at org.netbeans.modules.cnd.completion.cplusplus.ext.CsmCompletionQuery.query(CsmCompletionQuery.java:520) at org.netbeans.modules.cnd.completion.cplusplus.ext.CsmCompletionQuery.query(CsmCompletionQuery.java:240) at org.netbeans.modules.cnd.completion.cplusplus.ext.CsmCompletionQuery.query(CsmCompletionQuery.java:219) at org.netbeans.modules.cnd.completion.cplusplus.CsmCompletionProvider$Query.query(CsmCompletionProvider.java:283) at org.netbeans.spi.editor.completion.support.AsyncCompletionTask.run(AsyncCompletionTask.java:223) at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1443) at org.netbeans.modules.openide.util.GlobalLookup.execute(GlobalLookup.java:68) at org.openide.util.lookup.Lookups.executeWith(Lookups.java:303) at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:2058) 4) "Code Completion" at org.netbeans.modules.cnd.apt.support.ClankDriver.preprocess(ClankDriver.java:98) at org.netbeans.modules.cnd.modelimpl.parser.clank.ClankTokenStreamProducer.getTokenStream(ClankTokenStreamProducer.java:148) at org.netbeans.modules.cnd.modelimpl.csm.core.FileImpl.createAndCacheFullTokenStream(FileImpl.java:1185) at org.netbeans.modules.cnd.modelimpl.csm.core.FileImpl.getTokenStream(FileImpl.java:1238) at org.netbeans.modules.cnd.modelimpl.impl.services.MacroExpansionDocProviderImpl.getFileTokenSequence(MacroExpansionDocProviderImpl.java:852) at org.netbeans.modules.cnd.modelimpl.impl.services.MacroExpansionDocProviderImpl.expand(MacroExpansionDocProviderImpl.java:509) at org.netbeans.modules.cnd.modelimpl.impl.services.MacroExpansionDocProviderImpl.getMacroTable(MacroExpansionDocProviderImpl.java:1536) at org.netbeans.modules.cnd.modelimpl.impl.services.MacroExpansionDocProviderImpl.expand(MacroExpansionDocProviderImpl.java:331) at org.netbeans.modules.cnd.api.model.services.CsmMacroExpansion.expand(CsmMacroExpansion.java:161) at org.netbeans.modules.cnd.completion.cplusplus.ext.CsmExpandedTokenProcessor.create(CsmExpandedTokenProcessor.java:101) at org.netbeans.modules.cnd.completion.cplusplus.ext.CsmExpandedTokenProcessor.create(CsmExpandedTokenProcessor.java:93) at org.netbeans.modules.cnd.completion.cplusplus.ext.CsmCompletionQuery.processTokensInFile(CsmCompletionQuery.java:723) at org.netbeans.modules.cnd.completion.cplusplus.ext.CsmCompletionQuery.queryImpl(CsmCompletionQuery.java:563) at org.netbeans.modules.cnd.completion.cplusplus.ext.CsmCompletionQuery.query(CsmCompletionQuery.java:527) at org.netbeans.modules.cnd.completion.cplusplus.ext.CsmCompletionQuery.query(CsmCompletionQuery.java:520) at org.netbeans.modules.cnd.completion.cplusplus.ext.CsmCompletionQuery.query(CsmCompletionQuery.java:240) at org.netbeans.modules.cnd.completion.cplusplus.ext.CsmCompletionQuery.query(CsmCompletionQuery.java:219) at org.netbeans.modules.cnd.completion.cplusplus.CsmCompletionProvider$Query.query(CsmCompletionProvider.java:283) at org.netbeans.spi.editor.completion.support.AsyncCompletionTask.run(AsyncCompletionTask.java:223) at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1443) at org.netbeans.modules.openide.util.GlobalLookup.execute(GlobalLookup.java:68) at org.openide.util.lookup.Lookups.executeWith(Lookups.java:303) at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:2058)
Integrated into 'main-silver', will be available in build *201509110002* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress) Changeset: http://hg.netbeans.org/main-silver/rev/844e436ffea3 User: Vladimir Kvashin <vkvashin@netbeans.org> Log: fixed latent NPE (fixing #254944 - [newcodemodel] slow code completion caused by multiple preprocessing of the same file)
Integrated into 'main-silver', will be available in build *201509120002* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress) Changeset: http://hg.netbeans.org/main-silver/rev/4dc65f20a7c0 User: Vladimir Kvashin <vkvashin@netbeans.org> Log: cache tokens after parse (fixing #254944 - [newcodemodel] slow code completion caused by multiple preprocessing of the same file)
Integrated into 'main-silver', will be available in build *201509160002* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress) Changeset: http://hg.netbeans.org/main-silver/rev/66bbbbbec32a User: Vladimir Kvashin <vkvashin@netbeans.org> Log: cache macro usages on parse of modified file (fixing #254944 - [newcodemodel] slow code completion caused by multiple preprocessing of the same file)
http://hg.netbeans.org/cnd-main/rev/66bbbbbec32a http://hg.netbeans.org/cnd-main/rev/9b3b1237f74a http://hg.netbeans.org/cnd-main/rev/7872818081c5 http://hg.netbeans.org/cnd-main/rev/2720dc854003 http://hg.netbeans.org/cnd-main/rev/4dc65f20a7c0 http://hg.netbeans.org/cnd-main/rev/0564c928f3b4 http://hg.netbeans.org/cnd-main/rev/f6cff92f6cba http://hg.netbeans.org/cnd-main/rev/abcfcc58f64d http://hg.netbeans.org/cnd-main/rev/181b7db1604d http://hg.netbeans.org/cnd-main/rev/4764e73a5a8e http://hg.netbeans.org/cnd-main/rev/aa750476dfb2 http://hg.netbeans.org/cnd-main/rev/392a2243bcd0 http://hg.netbeans.org/cnd-main/rev/844e436ffea3