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.

Bug 168651 - Add an option to stop the dynamic code indexing
Summary: Add an option to stop the dynamic code indexing
Status: RESOLVED FIXED
Alias: None
Product: cnd
Classification: Unclassified
Component: Code Model (show other bugs)
Version: 6.x
Hardware: All All
: P1 blocker (vote)
Assignee: Alexander Simon
URL:
Keywords:
Depends on:
Blocks: 152213
  Show dependency tree
 
Reported: 2009-07-16 00:09 UTC by wsonguci
Modified: 2009-10-22 23:44 UTC (History)
1 user (show)

See Also:
Issue Type: ENHANCEMENT
Exception Reporter:


Attachments
thread dump (17.97 KB, text/plain)
2009-07-21 20:32 UTC, wsonguci
Details
IDE log (38.14 KB, text/plain)
2009-07-23 01:33 UTC, wsonguci
Details

Note You need to log in before you can comment on or make changes to this bug.
Description wsonguci 2009-07-16 00:09:20 UTC
I have a large C project containing several thousand .c/h files. Everytime I modify a file, the code parser kicks in and
takes a huge amount of CPU (even though I have dual-core CPU) hence makes the file editing very slow and unresponsive.
This is a big pain in the ass.

Although I can turn it off for project completely using project's context menu->Code Assistance->C/C++ Code Assistance,
the problem is that when I turn off 'C/C++ Code Assistance', the code navigation stopped working completely. That's
undesirable. What I think is really helpful is that we can turn off the DYNAMIC code indexing since every time you make
some editing, the code indexer kicks in and slows down your whole editing, which is really painful. Adding this option
to get around the indexer performance problem doesn't seem to be a very big task. 

I think NB should have on option where the user can choose whether NB should automatically update the index or update
index immediately after every file-change. This feature is available in Eclipse IDE under C/C++->Indexer->Indexing strategy.

If NB wants to gain support from developers of big projects, it should address this indexing performance issue as a high
priority, because in big projects, developers need to navigate through a lot of files and make changes easily and quickly.
Comment 1 Alexander Simon 2009-07-16 07:40:14 UTC
Now CND has strategy: keep code model in most accurate state.
It results in performance issues.
But CND can allow user improve performance by means of accuracy.
So I can propose to tune following indexing options:
----------------------
Source Code Indexing Strategy

Indexing of Modified File:
- indexing on edit (default)
- indexing on save

Indexing of File dependencies:
- index modified file
- index all dependent files (default)

Precompiled Headers:
- rebuild precompiled header of file cache on file save
- rebuild precompiled headers of all dependent files on file save (default)
- switch off precompiled headers
----------------------
Is it clear? Is it approved by CND team?

Comment 2 wsonguci 2009-07-16 20:41:57 UTC
I think this proposal makes sense.

I would select 'index modified files' for most cases.
Comment 3 Vladimir Kvashin 2009-07-17 06:33:11 UTC
If we index only modified files and *never* index dependent ones,
than sooner or later we'll come to a situation when code assistance works very bad.

I believe that's rather a matter of *when* or *how often* should IDE reindex dependent files than whether to reindex
them or not.
Comment 4 Vladimir Voskresensky 2009-07-17 08:18:50 UTC
As workaround, you might try to turn off some highlightings in Tools->Options->C/C++->Semantic Highlighting. (Instead of
turning off code assistance completely)

Btw, could you, please, generate thread dump to see what's happened in your IDE?
Thanks,
Vladimir.
Comment 5 wsonguci 2009-07-21 20:32:27 UTC
Created attachment 85036 [details]
thread dump
Comment 6 Vladimir Voskresensky 2009-07-22 10:42:44 UTC
Could you, please, send us the information from View->IDE Log
Comment 7 Vladimir Voskresensky 2009-07-22 14:36:27 UTC
How big is your project? Do you have enough memory?
Could you try dev build?
What if you turn off some of Tools->Options->C/C++->Semantic Highlighting?
Comment 8 wsonguci 2009-07-23 01:33:54 UTC
Created attachment 85099 [details]
IDE log
Comment 9 wsonguci 2009-07-23 01:36:05 UTC
My PC has Intel(R) Core(TM)2 CPU 6400  @ 2.13GHz, 2G memory.

My project has about 5000 C and header files.

Turning off Tools->Options->C/C++->Semantic Highlighting didn't help.
Comment 10 Alexander Simon 2009-07-23 09:09:18 UTC
>Heap memory usage: initial 32.0MB maximum 400.9MB
Could you try to provide IDE more heap?
For example: -J-Xmx800M of heap memory.
Does additional memory solve problem?
Comment 11 soldatov 2009-07-23 10:14:03 UTC
I agree with wsonguci and alexvsimon. 'indexing on save' and 'index modified file' are very necessary options. Also I
suggest to add "Reparse project" button in order to fix problems in code model.
Comment 12 ioutkine 2009-07-24 04:28:43 UTC
here it thread dump. CPU is only loaded 50%. it is difficult to catch the exact moment of slowness because when you 
switch context between NB and console the picture can change

2009-07-24 11:22:56
Full thread dump Java HotSpot(TM) Client VM (11.2-b01 mixed mode):

"Inactive RequestProcessor thread [Was:CsmHighPriorityFileTaskFactory/org.netbea
ns.modules.cnd.model.tasks.CsmFileTaskFactory$CsmSafeRunnable]" daemon prio=6 ti
d=0x07823800 nid=0x3ec in Object.wait() [0x0581f000..0x0581fc14]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java
:983)
        - locked <0x164fea18> (a java.lang.Object)

"Inactive RequestProcessor thread [Was:CaretMarkProvider/org.netbeans.modules.ed
itor.errorstripe.caret.CaretMarkProvider$1]" daemon prio=2 tid=0x077b6400 nid=0x
16fc in Object.wait() [0x055df000..0x055dfc94]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java
:983)
        - locked <0x164fea98> (a java.lang.Object)

"Inactive RequestProcessor thread [Was:CaretAwareCsmFileTaskFactory worker/org.n
etbeans.modules.cnd.model.tasks.CaretAwareCsmFileTaskFactory$ComponentListener$1
]" daemon prio=2 tid=0x07716800 nid=0x137c in Object.wait() [0x053df000..0x053df
d14]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java
:983)
        - locked <0x164feb18> (a java.lang.Object)

"CsmFileTaskFactory" daemon prio=2 tid=0x07560c00 nid=0x12c8 runnable [0x04f2d00
0..0x04f2fd94]
   java.lang.Thread.State: RUNNABLE
        at java.lang.String.equals(Unknown Source)
        at java.util.concurrent.ConcurrentHashMap$Segment.get(Unknown Source)
        at java.util.concurrent.ConcurrentHashMap.get(Unknown Source)
        at org.netbeans.modules.cnd.utils.cache.CndFileUtils.exists(CndFileUtils
.java:130)
        at org.netbeans.modules.cnd.apt.utils.APTIncludeUtils.exists(APTIncludeU
tils.java:122)
        at org.netbeans.modules.cnd.apt.utils.APTIncludeUtils.resolveFilePath(AP
TIncludeUtils.java:91)
        at org.netbeans.modules.cnd.apt.impl.support.APTIncludeResolverImpl.reso
lveFilePath(APTIncludeResolverImpl.java:100)
        at org.netbeans.modules.cnd.apt.impl.support.APTIncludeResolverImpl.reso
lveInclude(APTIncludeResolverImpl.java:73)
        at org.netbeans.modules.cnd.apt.support.APTAbstractWalker.onInclude(APTA
bstractWalker.java:77)
        at org.netbeans.modules.cnd.apt.support.APTWalker.onAPT(APTWalker.java:2
74)
        at org.netbeans.modules.cnd.apt.support.APTWalker.visit(APTWalker.java:2
36)
        at org.netbeans.modules.cnd.apt.support.APTWalker.visit(APTWalker.java:2
39)
        at org.netbeans.modules.cnd.apt.support.APTWalker.visit(APTWalker.java:2
34)
        at org.netbeans.modules.cnd.apt.support.APTWalker.visit(APTWalker.java:2
39)
        at org.netbeans.modules.cnd.apt.support.APTWalker.visit(APTWalker.java:2
34)
        at org.netbeans.modules.cnd.apt.support.APTWalker.visit(APTWalker.java:8
4)
        at org.netbeans.modules.cnd.modelimpl.parser.apt.APTSelfWalker.include(A
PTSelfWalker.java:71)
        at org.netbeans.modules.cnd.apt.support.APTAbstractWalker.includeImpl(AP
TAbstractWalker.java:130)
        at org.netbeans.modules.cnd.apt.support.APTAbstractWalker.onInclude(APTA
bstractWalker.java:89)
        at org.netbeans.modules.cnd.apt.support.APTWalker.onAPT(APTWalker.java:2
74)
        at org.netbeans.modules.cnd.apt.support.APTWalker.visit(APTWalker.java:2
36)
        at org.netbeans.modules.cnd.apt.support.APTWalker.visit(APTWalker.java:2
39)
        at org.netbeans.modules.cnd.apt.support.APTWalker.visit(APTWalker.java:2
34)
        at org.netbeans.modules.cnd.apt.support.APTWalker.visit(APTWalker.java:2
39)
        at org.netbeans.modules.cnd.apt.support.APTWalker.visit(APTWalker.java:2
34)
        at org.netbeans.modules.cnd.apt.support.APTWalker.visit(APTWalker.java:2
39)
        at org.netbeans.modules.cnd.apt.support.APTWalker.visit(APTWalker.java:2
34)
        at org.netbeans.modules.cnd.apt.support.APTWalker.visit(APTWalker.java:8
4)
        at org.netbeans.modules.cnd.modelimpl.parser.apt.APTSelfWalker.include(A
PTSelfWalker.java:71)
        at org.netbeans.modules.cnd.apt.support.APTAbstractWalker.includeImpl(AP
TAbstractWalker.java:130)
        at org.netbeans.modules.cnd.apt.support.APTAbstractWalker.onInclude(APTA
bstractWalker.java:89)
        at org.netbeans.modules.cnd.apt.support.APTWalker.onAPT(APTWalker.java:2
74)
        at org.netbeans.modules.cnd.apt.support.APTWalker.visit(APTWalker.java:2
36)
        at org.netbeans.modules.cnd.apt.support.APTWalker.visit(APTWalker.java:2
39)
        at org.netbeans.modules.cnd.apt.support.APTWalker.visit(APTWalker.java:2
34)
        at org.netbeans.modules.cnd.apt.support.APTWalker.visit(APTWalker.java:2
39)
        at org.netbeans.modules.cnd.apt.support.APTWalker.visit(APTWalker.java:2
34)
        at org.netbeans.modules.cnd.apt.support.APTWalker.visit(APTWalker.java:8
4)
        at org.netbeans.modules.cnd.modelimpl.parser.apt.APTSelfWalker.include(A
PTSelfWalker.java:71)
        at org.netbeans.modules.cnd.apt.support.APTAbstractWalker.includeImpl(AP
TAbstractWalker.java:130)
        at org.netbeans.modules.cnd.apt.support.APTAbstractWalker.onInclude(APTA
bstractWalker.java:89)
        at org.netbeans.modules.cnd.apt.support.APTWalker.onAPT(APTWalker.java:2
74)
        at org.netbeans.modules.cnd.apt.support.APTWalker.visit(APTWalker.java:2
36)
        at org.netbeans.modules.cnd.apt.support.APTWalker.visit(APTWalker.java:2
39)
        at org.netbeans.modules.cnd.apt.support.APTWalker.visit(APTWalker.java:2
34)
        at org.netbeans.modules.cnd.apt.support.APTWalker.visit(APTWalker.java:2
39)
        at org.netbeans.modules.cnd.apt.support.APTWalker.visit(APTWalker.java:2
34)
        at org.netbeans.modules.cnd.apt.support.APTWalker.visit(APTWalker.java:2
39)
        at org.netbeans.modules.cnd.apt.support.APTWalker.visit(APTWalker.java:2
34)
        at org.netbeans.modules.cnd.apt.support.APTWalker.visit(APTWalker.java:8
4)
        at org.netbeans.modules.cnd.modelimpl.parser.apt.APTSelfWalker.include(A
PTSelfWalker.java:71)
        at org.netbeans.modules.cnd.apt.support.APTAbstractWalker.includeImpl(AP
TAbstractWalker.java:130)
        at org.netbeans.modules.cnd.apt.support.APTAbstractWalker.onInclude(APTA
bstractWalker.java:89)
        at org.netbeans.modules.cnd.apt.support.APTWalker.onAPT(APTWalker.java:2
74)
        at org.netbeans.modules.cnd.apt.support.APTWalker.visit(APTWalker.java:2
36)
        at org.netbeans.modules.cnd.apt.support.APTWalker.visit(APTWalker.java:2
39)
        at org.netbeans.modules.cnd.apt.support.APTWalker.visit(APTWalker.java:2
34)
        at org.netbeans.modules.cnd.apt.support.APTWalker.visit(APTWalker.java:8
4)
        at org.netbeans.modules.cnd.modelimpl.parser.apt.APTSelfWalker.include(A
PTSelfWalker.java:71)
        at org.netbeans.modules.cnd.apt.support.APTAbstractWalker.includeImpl(AP
TAbstractWalker.java:130)
        at org.netbeans.modules.cnd.apt.support.APTAbstractWalker.onInclude(APTA
bstractWalker.java:89)
        at org.netbeans.modules.cnd.apt.support.APTWalker.onAPT(APTWalker.java:2
74)
        at org.netbeans.modules.cnd.apt.support.APTWalker.visit(APTWalker.java:2
36)
        at org.netbeans.modules.cnd.apt.support.APTWalker.visit(APTWalker.java:2
39)
        at org.netbeans.modules.cnd.apt.support.APTWalker.visit(APTWalker.java:2
34)
        at org.netbeans.modules.cnd.apt.support.APTWalker.visit(APTWalker.java:8
4)
        at org.netbeans.modules.cnd.modelimpl.parser.apt.APTSelfWalker.include(A
PTSelfWalker.java:71)
        at org.netbeans.modules.cnd.apt.support.APTAbstractWalker.includeImpl(AP
TAbstractWalker.java:130)
        at org.netbeans.modules.cnd.apt.support.APTAbstractWalker.onInclude(APTA
bstractWalker.java:89)
        at org.netbeans.modules.cnd.apt.support.APTWalker.onAPT(APTWalker.java:2
74)
        at org.netbeans.modules.cnd.apt.support.APTWalker.visit(APTWalker.java:2
36)
        at org.netbeans.modules.cnd.apt.support.APTWalker.visit(APTWalker.java:2
39)
        at org.netbeans.modules.cnd.apt.support.APTWalker.visit(APTWalker.java:2
34)
        at org.netbeans.modules.cnd.apt.support.APTWalker.visit(APTWalker.java:8
4)
        at org.netbeans.modules.cnd.modelimpl.parser.apt.APTSelfWalker.include(A
PTSelfWalker.java:71)
        at org.netbeans.modules.cnd.apt.support.APTAbstractWalker.includeImpl(AP
TAbstractWalker.java:130)
        at org.netbeans.modules.cnd.apt.support.APTAbstractWalker.onInclude(APTA
bstractWalker.java:89)
        at org.netbeans.modules.cnd.apt.support.APTWalker.onAPT(APTWalker.java:2
74)
        at org.netbeans.modules.cnd.apt.support.APTWalker.visit(APTWalker.java:2
36)
        at org.netbeans.modules.cnd.apt.support.APTWalker.visit(APTWalker.java:2
39)
        at org.netbeans.modules.cnd.apt.support.APTWalker.visit(APTWalker.java:2
34)
        at org.netbeans.modules.cnd.apt.support.APTWalker.visit(APTWalker.java:8
4)
        at org.netbeans.modules.cnd.modelimpl.parser.apt.APTSelfWalker.include(A
PTSelfWalker.java:71)
        at org.netbeans.modules.cnd.apt.support.APTAbstractWalker.includeImpl(AP
TAbstractWalker.java:130)
        at org.netbeans.modules.cnd.apt.support.APTAbstractWalker.onInclude(APTA
bstractWalker.java:89)
        at org.netbeans.modules.cnd.apt.support.APTWalker.onAPT(APTWalker.java:2
74)
        at org.netbeans.modules.cnd.apt.support.APTWalker.visit(APTWalker.java:2
36)
        at org.netbeans.modules.cnd.apt.support.APTWalker.visit(APTWalker.java:2
39)
        at org.netbeans.modules.cnd.apt.support.APTWalker.visit(APTWalker.java:2
34)
        at org.netbeans.modules.cnd.apt.support.APTWalker.visit(APTWalker.java:8
4)
        at org.netbeans.modules.cnd.modelimpl.parser.apt.APTSelfWalker.include(A
PTSelfWalker.java:71)
        at org.netbeans.modules.cnd.apt.support.APTAbstractWalker.includeImpl(AP
TAbstractWalker.java:130)
        at org.netbeans.modules.cnd.apt.support.APTAbstractWalker.onInclude(APTA
bstractWalker.java:89)
        at org.netbeans.modules.cnd.apt.support.APTWalker.onAPT(APTWalker.java:2
74)
        at org.netbeans.modules.cnd.apt.support.APTWalker.visit(APTWalker.java:2
36)
        at org.netbeans.modules.cnd.apt.support.APTWalker.visit(APTWalker.java:2
39)
        at org.netbeans.modules.cnd.apt.support.APTWalker.visit(APTWalker.java:2
34)
        at org.netbeans.modules.cnd.apt.support.APTWalker.visit(APTWalker.java:8
4)
        at org.netbeans.modules.cnd.modelimpl.parser.apt.APTSelfWalker.include(A
PTSelfWalker.java:71)
        at org.netbeans.modules.cnd.apt.support.APTAbstractWalker.includeImpl(AP
TAbstractWalker.java:130)
        at org.netbeans.modules.cnd.apt.support.APTAbstractWalker.onInclude(APTA
bstractWalker.java:89)
        at org.netbeans.modules.cnd.apt.support.APTWalker.onAPT(APTWalker.java:2
74)
        at org.netbeans.modules.cnd.apt.support.APTWalker.visit(APTWalker.java:2
36)
        at org.netbeans.modules.cnd.apt.support.APTWalker.visit(APTWalker.java:2
39)
        at org.netbeans.modules.cnd.apt.support.APTWalker.visit(APTWalker.java:2
34)
        at org.netbeans.modules.cnd.apt.support.APTWalker.visit(APTWalker.java:8
4)
        at org.netbeans.modules.cnd.modelimpl.parser.apt.APTSelfWalker.include(A
PTSelfWalker.java:71)
        at org.netbeans.modules.cnd.apt.support.APTAbstractWalker.includeImpl(AP
TAbstractWalker.java:124)
        - locked <0x1700e478> (a org.netbeans.modules.cnd.apt.support.APTFileCac
heEntry$IncludeData)
        at org.netbeans.modules.cnd.apt.support.APTAbstractWalker.onInclude(APTA
bstractWalker.java:89)
        at org.netbeans.modules.cnd.apt.support.APTWalker.onAPT(APTWalker.java:2
74)
        at org.netbeans.modules.cnd.apt.support.APTWalker.visit(APTWalker.java:2
36)
        at org.netbeans.modules.cnd.apt.support.APTWalker.visit(APTWalker.java:8
4)
        at org.netbeans.modules.cnd.modelimpl.impl.services.FileInfoQueryImpl.ge
tUnusedCodeBlocks(FileInfoQueryImpl.java:131)
        at org.netbeans.modules.cnd.completion.impl.xref.FileReferencesImpl$Expa
ndedReferencesProcessor.create(FileReferencesImpl.java:201)
        at org.netbeans.modules.cnd.completion.impl.xref.FileReferencesImpl.getI
dentifierReferences(FileReferencesImpl.java:179)
        at org.netbeans.modules.cnd.completion.impl.xref.FileReferencesImpl._acc
ept(FileReferencesImpl.java:136)
        at org.netbeans.modules.cnd.completion.impl.xref.FileReferencesImpl.acce
pt(FileReferencesImpl.java:98)
        at org.netbeans.modules.cnd.highlight.semantic.SemanticHighlighter.updat
e(SemanticHighlighter.java:226)
        at org.netbeans.modules.cnd.highlight.semantic.SemanticHighlighter.updat
e(SemanticHighlighter.java:157)
        at org.netbeans.modules.cnd.highlight.semantic.SemanticHighlighter.run(S
emanticHighlighter.java:283)
        at org.netbeans.modules.cnd.model.tasks.CsmFileTaskFactory$3.run(CsmFile
TaskFactory.java:403)
        at org.netbeans.modules.cnd.model.tasks.CsmFileTaskFactory$CsmSafeRunnab
le.run(CsmFileTaskFactory.java:438)
        at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:577)

        at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java
:1030)

"Inactive RequestProcessor thread [Was:CsmDecisionFileTaskFactory/org.netbeans.m
odules.cnd.model.tasks.CsmFileTaskFactory$1]" daemon prio=2 tid=0x074e0c00 nid=0
x950 in Object.wait() [0x04d2f000..0x04d2fa14]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java
:983)
        - locked <0x1645b508> (a java.lang.Object)

"Inactive RequestProcessor thread [Was:OpenIDE-request-processor-0/org.netbeans.
core.startup.preferences.NbPreferences$1]" daemon prio=2 tid=0x0a32c400 nid=0x14
70 in Object.wait() [0x048df000..0x048dfa94]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java
:983)
        - locked <0x16427868> (a java.lang.Object)

"Inactive RequestProcessor thread [Was:Versioning/org.netbeans.modules.versionin
g.system.cvss.FilesystemHandler$3]" daemon prio=2 tid=0x06946400 nid=0x1734 in O
bject.wait() [0x046df000..0x046dfb14]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java
:983)
        - locked <0x164278e8> (a java.lang.Object)

"Timer-127" prio=6 tid=0x06957800 nid=0x10a8 in Object.wait() [0x07a7f000..0x07a
7fd94]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:485)
        at java.util.TimerThread.mainLoop(Unknown Source)
        - locked <0x14bc6440> (a java.util.TaskQueue)
        at java.util.TimerThread.run(Unknown Source)

"Connect thread vsgs36a-0071 session" daemon prio=2 tid=0x0751e400 nid=0x1128 ru
nnable [0x051df000..0x051dfb14]
   java.lang.Thread.State: RUNNABLE
        at java.net.SocketInputStream.socketRead0(Native Method)
        at java.net.SocketInputStream.read(Unknown Source)
        at com.jcraft.jsch.IO.getByte(IO.java:82)
        at com.jcraft.jsch.Session.read(Session.java:809)
        at com.jcraft.jsch.Session.run(Session.java:1193)
        at java.lang.Thread.run(Unknown Source)

"Parsing & Indexing Loop (200906241340)" daemon prio=2 tid=0x06caa000 nid=0xf24
waiting on condition [0x0a26f000..0x0a26fa14]
   java.lang.Thread.State: WAITING (parking)
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <0x12886c80> (a java.util.concurrent.locks.Abstra
ctQueuedSynchronizer$ConditionObject)
        at java.util.concurrent.locks.LockSupport.park(Unknown Source)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject
.await(Unknown Source)
        at java.util.concurrent.PriorityBlockingQueue.take(Unknown Source)
        at org.netbeans.modules.parsing.impl.TaskProcessor$CompilationJob.run(Ta
skProcessor.java:577)
        at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
        at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
        at java.util.concurrent.FutureTask.run(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source
)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)

"Repository writer 0" daemon prio=2 tid=0x02f90400 nid=0x14b4 waiting on conditi
on [0x08f6f000..0x08f6fc94]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
        at java.lang.Thread.sleep(Native Method)
        at org.netbeans.modules.cnd.repository.queue.RepositoryWritingThread.wai
tReady(RepositoryWritingThread.java:94)
        at org.netbeans.modules.cnd.repository.queue.RepositoryWritingThread.run
(RepositoryWritingThread.java:128)
        at org.netbeans.modules.cnd.repository.queue.RepositoryThreadManager$Wra
pper.run(RepositoryThreadManager.java:84)
        at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:577)

        at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java
:1030)

"Class View Updater" prio=6 tid=0x02f56c00 nid=0x1468 in Object.wait() [0x08d6f0
00..0x08d6fd14]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:485)
        at org.netbeans.modules.cnd.classview.ClassViewUpdater$BlockingQueue.get
(ClassViewUpdater.java:65)
        - locked <0x1260cb78> (a java.lang.Object)
        at org.netbeans.modules.cnd.classview.ClassViewUpdater.run(ClassViewUpda
ter.java:144)

"AWT-EventQueue-1" prio=6 tid=0x041de800 nid=0x1788 runnable [0x0874e000..0x0874
fa94]
   java.lang.Thread.State: RUNNABLE
        at java.lang.Object.hashCode(Native Method)
        at java.util.WeakHashMap.get(Unknown Source)
        at org.netbeans.editor.Coloring.fromAttributeSet(Coloring.java:773)
        - locked <0x1351aca0> (a java.util.WeakHashMap)
        at org.netbeans.editor.HighlightingDrawLayer.processOffset(HighlightingD
rawLayer.java:624)
        at org.netbeans.editor.HighlightingDrawLayer.updateContext(HighlightingD
rawLayer.java:369)
        at org.netbeans.editor.DrawEngine.computeFragmentDisplayWidth(DrawEngine
.java:502)
        at org.netbeans.editor.DrawEngine.drawFragment(DrawEngine.java:834)
        at org.netbeans.editor.DrawEngine.drawArea(DrawEngine.java:899)
        at org.netbeans.editor.DrawEngine.drawInternal(DrawEngine.java:1168)
        - locked <0x13652538> (a org.netbeans.modules.editor.NbEditorUI)
        at org.netbeans.editor.DrawEngine.draw(DrawEngine.java:1074)
        at org.netbeans.editor.DrawEngineLineView.getModel2ViewRect(DrawEngineLi
neView.java:413)
        at org.netbeans.editor.DrawEngineLineView.modelToView(DrawEngineLineView
.java:482)
        at org.netbeans.editor.DrawEngineLineView.getPreferredSpan(DrawEngineLin
eView.java:305)
        at org.netbeans.editor.DrawEngineLineView.minorAxisUpdateLayout(DrawEngi
neLineView.java:802)
        at org.netbeans.editor.DrawEngineLineView.updateLayout(DrawEngineLineVie
w.java:757)
        at org.netbeans.lib.editor.view.GapBoxViewChildren.childrenUpdateLayout(
GapBoxViewChildren.java:900)
        at org.netbeans.lib.editor.view.GapBoxViewChildren.childrenUpdateLayout(
GapBoxViewChildren.java:905)
        at org.netbeans.lib.editor.view.GapBoxView.updateLayout(GapBoxView.java:
756)
        at org.netbeans.lib.editor.view.GapBoxView.directUpdateLayout(GapBoxView
.java:904)
        at org.netbeans.lib.editor.view.GapDocumentView.directUpdateLayout(GapDo
cumentView.java:187)
        at org.netbeans.lib.editor.view.GapBoxView.markLayoutInvalid(GapBoxView.
java:891)
        at org.netbeans.lib.editor.view.GapBoxViewChildren.markLayoutInvalid(Gap
BoxViewChildren.java:859)
        at org.netbeans.lib.editor.view.GapBoxView.preferenceChanged(GapBoxView.
java:1279)
        at javax.swing.text.View.preferenceChanged(Unknown Source)
        at org.netbeans.editor.DrawEngineLineView.highlightsChanged(DrawEngineLi
neView.java:339)
        at org.netbeans.editor.HighlightingDrawLayer.notifyViews(HighlightingDra
wLayer.java:583)
        at org.netbeans.editor.HighlightingDrawLayer.access$400(HighlightingDraw
Layer.java:83)
        at org.netbeans.editor.HighlightingDrawLayer$5.run(HighlightingDrawLayer
.java:517)
        at java.awt.event.InvocationEvent.dispatch(Unknown Source)
        at java.awt.EventQueue.dispatchEvent(Unknown Source)
        at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.j
ava:104)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.run(Unknown Source)

"TimerQueue" daemon prio=6 tid=0x041de400 nid=0x1594 in Object.wait() [0x06ecf00
0..0x06ecfb14]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at javax.swing.TimerQueue.run(Unknown Source)
        - locked <0x1246a0c0> (a javax.swing.TimerQueue)
        at java.lang.Thread.run(Unknown Source)

"Code Model Parser 1" daemon prio=2 tid=0x070e5000 nid=0x1628 in Object.wait() [
0x0854f000..0x0854fb94]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:485)
        at org.netbeans.modules.cnd.modelimpl.csm.core.ParserQueue.waitReady(Par
serQueue.java:459)
        - locked <0x1260cb90> (a java.lang.Object)
        at org.netbeans.modules.cnd.modelimpl.csm.core.ParserThread._run(ParserT
hread.java:94)
        at org.netbeans.modules.cnd.modelimpl.csm.core.ParserThread.run(ParserTh
read.java:68)
        at org.netbeans.modules.cnd.modelimpl.csm.core.ParserThreadManager$Wrapp
er.run(ParserThreadManager.java:87)
        at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:577)

        at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java
:1030)

"Thread-3" daemon prio=6 tid=0x070c1800 nid=0x108c in Object.wait() [0x0834f000.
.0x0834fc14]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x123c85a0> (a java.util.LinkedList)
        at java.lang.Object.wait(Object.java:485)
        at java.util.prefs.AbstractPreferences$EventDispatchThread.run(Unknown S
ource)
        - locked <0x123c85a0> (a java.util.LinkedList)

"AWT-Windows" daemon prio=6 tid=0x0419c400 nid=0x16b8 runnable [0x068cf000..0x06
8cfa14]
   java.lang.Thread.State: RUNNABLE
        at sun.awt.windows.WToolkit.eventLoop(Native Method)
        at sun.awt.windows.WToolkit.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)

"AWT-Shutdown" prio=6 tid=0x0419b400 nid=0x15f8 in Object.wait() [0x066cf000..0x
066cfa94]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:485)
        at sun.awt.AWTAutoShutdown.run(Unknown Source)
        - locked <0x11fdad28> (a java.lang.Object)
        at java.lang.Thread.run(Unknown Source)

"Java2D Disposer" daemon prio=10 tid=0x04184c00 nid=0x13d0 in Object.wait() [0x0
64cf000..0x064cfb14]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at java.lang.ref.ReferenceQueue.remove(Unknown Source)
        - locked <0x11fdadb8> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(Unknown Source)
        at sun.java2d.Disposer.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)

"Code Model Parser 0" daemon prio=2 tid=0x04122800 nid=0xb8c in Object.wait() [0
x05fcf000..0x05fcfc14]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:485)
        at org.netbeans.modules.cnd.modelimpl.csm.core.ParserQueue.waitReady(Par
serQueue.java:459)
        - locked <0x1260cb90> (a java.lang.Object)
        at org.netbeans.modules.cnd.modelimpl.csm.core.ParserThread._run(ParserT
hread.java:94)
        at org.netbeans.modules.cnd.modelimpl.csm.core.ParserThread.run(ParserTh
read.java:68)
        at org.netbeans.modules.cnd.modelimpl.csm.core.ParserThreadManager$Wrapp
er.run(ParserThreadManager.java:87)
        at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:577)

        at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java
:1030)

"Timer-0" daemon prio=6 tid=0x04124800 nid=0xc3c in Object.wait() [0x05dcf000..0
x05dcfc94]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at java.util.TimerThread.mainLoop(Unknown Source)
        - locked <0x11fcbe50> (a java.util.TaskQueue)
        at java.util.TimerThread.run(Unknown Source)

"CLI Requests Server" daemon prio=6 tid=0x04121800 nid=0x1538 runnable [0x05bcf0
00..0x05bcfd14]
   java.lang.Thread.State: RUNNABLE
        at java.net.PlainSocketImpl.socketAccept(Native Method)
        at java.net.PlainSocketImpl.accept(Unknown Source)
        - locked <0x11fcbf28> (a java.net.SocksSocketImpl)
        at java.net.ServerSocket.implAccept(Unknown Source)
        at java.net.ServerSocket.accept(Unknown Source)
        at org.netbeans.CLIHandler$Server.run(CLIHandler.java:1005)

"Active Reference Queue Daemon" daemon prio=2 tid=0x04097400 nid=0x122c in Objec
t.wait() [0x043ef000..0x043efd94]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at java.lang.ref.ReferenceQueue.remove(Unknown Source)
        - locked <0x11fbdf08> (a java.lang.ref.ReferenceQueue$Lock)
        at org.netbeans.modules.openide.util.ActiveQueue.run(ActiveQueue.java:53
)
        at java.lang.Thread.run(Unknown Source)

"Low Memory Detector" daemon prio=6 tid=0x02f87000 nid=0x139c runnable [0x000000
00..0x00000000]
   java.lang.Thread.State: RUNNABLE

"CompilerThread0" daemon prio=10 tid=0x02f81400 nid=0x163c waiting on condition
[0x00000000..0x03bef7bc]
   java.lang.Thread.State: RUNNABLE

"Attach Listener" daemon prio=10 tid=0x02f7fc00 nid=0x11c4 runnable [0x00000000.
.0x00000000]
   java.lang.Thread.State: RUNNABLE

"Signal Dispatcher" daemon prio=10 tid=0x02f7e800 nid=0x1008 waiting on conditio
n [0x00000000..0x00000000]
   java.lang.Thread.State: RUNNABLE

"Finalizer" daemon prio=8 tid=0x02f6b800 nid=0xa20 in Object.wait() [0x035ef000.
.0x035efc94]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at java.lang.ref.ReferenceQueue.remove(Unknown Source)
        - locked <0x11fbe138> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(Unknown Source)
        at java.lang.ref.Finalizer$FinalizerThread.run(Unknown Source)

"Reference Handler" daemon prio=10 tid=0x02f6a000 nid=0xee8 in Object.wait() [0x
033ef000..0x033efd14]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:485)
        at java.lang.ref.Reference$ReferenceHandler.run(Unknown Source)
        - locked <0x11fbde28> (a java.lang.ref.Reference$Lock)

"main" prio=6 tid=0x00bb9400 nid=0x31c waiting on condition [0x00000000..0x0022f
290]
   java.lang.Thread.State: RUNNABLE

"VM Thread" prio=10 tid=0x02f65400 nid=0x1038 runnable

"VM Periodic Task Thread" prio=10 tid=0x02f91800 nid=0xe68 waiting on condition


JNI global references: 2570

Heap
 def new generation   total 8640K, used 7735K [0x10020000, 0x10970000, 0x11fa000
0)
  eden space 7744K, 100% used [0x10020000, 0x107b0000, 0x107b0000)
  from space 896K,  15% used [0x10890000, 0x108b3cb8, 0x10970000)
  to   space 896K,   0% used [0x107b0000, 0x107b0000, 0x10890000)
 tenured generation   total 113612K, used 83499K [0x11fa0000, 0x18e93000, 0x29a2
0000)
   the space 113612K,  73% used [0x11fa0000, 0x1712acd8, 0x1712ae00, 0x18e93000)

 compacting perm gen  total 44288K, used 44271K [0x29a20000, 0x2c560000, 0x36220
000)
   the space 44288K,  99% used [0x29a20000, 0x2c55bd68, 0x2c55be00, 0x2c560000)
No shared spaces configured.




Comment 13 Vladimir Voskresensky 2009-07-24 11:15:20 UTC
Hi, thanks for the dump.
But I still see semantic highlighting tasks. Could you, please, turn it OFF and check responsiveness.
In case of problems, please, provide the new dump.

Thanks,
Vladimir.
Comment 14 Alexander Simon 2009-10-21 11:32:30 UTC
Added option "Reparse on Document Changed" in the "Tools->Options->C/C++->Highlighting"
By default option is selected.
If options is not selected the reparsing is not scheduled after each document changed event.
Reparse will be only on document save or on invoking code completion.

change set:
http://hg.netbeans.org/cnd-main/rev/58f474b9552a
Comment 15 Quality Engineering 2009-10-22 23:44:32 UTC
Integrated into 'main-golden', will be available in build *200910221401* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress)
Changeset: http://hg.netbeans.org/main-golden/rev/58f474b9552a
User: Alexander Simon <alexvsimon@netbeans.org>
Log: fixing IZ#168651 Add an option to stop the dynamic code indexing
fixing IZ#152213 Large header files cause massive performance problem