[ 
https://issues.apache.org/jira/browse/NETBEANS-5380?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17288051#comment-17288051
 ] 

Jaroslav Tulach commented on NETBEANS-5380:
-------------------------------------------

It is always good to enable the (although improper) _"Hit Count"_ to see where 
the loops occur. Checking the second sample and the RepositoryUpdater.worker 
thread I see:

 
 * 
org.netbeans.modules.html.editor.lib.api.SyntaxAnalyzerResult$ElementContentFilter.getMasks()
 6x
 * 
org.netbeans.modules.html.editor.lib.api.SyntaxAnalyzerResult$ElementContentFilter.shouldBeFiltered()
 3280x

then it goes to:
 * 
org.netbeans.modules.parsing.spi.indexing.support.QuerySupport.reduceRootsByProjects()
 3306x
 * org.netbeans.modules.java.mx.project.SuiteFileOwnerQueryImpl.getOwner() 3642x

One option would be to decrease the number of calls to {{getOwner()}} when 
parsing. The other is to improve {{mx}} -  the problem there is that mx checks 
for project two levels deep. A folder is Mx project if it contains {{mx.*}} 
subfolder and that folder contains {{suite.py}} file.  FileSystems API isn't 
particularly fast in checking that.

I'll think about an improvement. Thanks for bug report.

> Background scanning spends significant time in 
> o.n.m.j.mx.project.SuiteFileOwnerQueryImpl#getOwner
> --------------------------------------------------------------------------------------------------
>
>                 Key: NETBEANS-5380
>                 URL: https://issues.apache.org/jira/browse/NETBEANS-5380
>             Project: NetBeans
>          Issue Type: Bug
>          Components: java - Source
>    Affects Versions: Next
>            Reporter: Matthias Bläsing
>            Assignee: Jaroslav Tulach
>            Priority: Major
>         Attachments: sample1.npss, sample2.npss
>
>
> I opened an angular project into an IDE build from recent master. I observed, 
> that a very (> 20 minutes) long background scanning times could be observed. 
> I first used visual VM and then the netbeans internal profiler to try to 
> narrow it down.
> *Profile*
> I'll attach two self profiles, both show the same picture, so I'll 
> concentrate on _sample2.npss_:
> There are 9 entries in the self profile, that show CPU times > 190s. From 
> these 8 are waiting in native code and thus false positives:
>  - ReferenceHandler
>  - FileSystemWatchService
>  - process reaper (3x)
>  - StreamTerm.Output (2x)
>  - pool-5-thread-1 (From the trace LSP integration)
> The one trace, that is connected to the observed scanning and is in java code 
> is _RepositoryUpdater.worker._ Breaking this down shows, that, although the 
> forward calls split into two branches, both hit:
> _org.netbeans.modules.java.mx.project.SuiteFileOwnerQueryImpl#getOwner_
> That method is responsible for 178s CPU time. No other FileOwnerQueryImpl 
> shows up in the trace, and thus this leads me to the conclusion, that this is 
> fishy.
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists

Reply via email to