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

Matthias Bläsing edited comment on NETBEANS-5380 at 2/27/21, 9:50 AM:
----------------------------------------------------------------------

Thank you for the explanation - with the generated projects indeed I found, 
that the SimpleFileOwnerQueryImplementation will normally return the wrong 
project. With this in mind I reverted the question: How could we prevent 
netbeans from recognizing the legacy projects when MX support is present?

I came up with this:

[https://github.com/matthiasblaesing/netbeans/commit/460042be723b28b430f88c77c1ee7ab18f364892]

The problem from my POV is, that 
org.netbeans.modules.project.ant.AntBasedProjectFactorySingleton will recognize 
the ant based project and legacy project support kicks in. But NetBeans 
supports multiple projects per project and will default to the one with the 
ProjectFactory of the lowest position. So two thing are done in the above patch:
 # org.netbeans.modules.java.mx.project.SuiteFactory got a position and that 
position is lower than the one from AntBasedProjectFactorySingleton
 # The factory was modified, to detect MX project not only for the current 
directory, but also two levels up

What do you think? I'll switch to a build with this merged and see if it does 
what I expect it to do.

[edit]Totally unscientific check:
 * had angular-tour-of-heros open (puts medium load onto the indexer)
 * opened an MX project (regex from graal project): the main regex project 
_and_ the two subprojects (com.oracle.truffle.regex and 
com.oracle.truffle.regex.test) where recognized
 * I opened regex and got normal java code completion and error reporting (so 
looks right)
 * indexing is still not fast, but it is back to the normal speed. Now the 
JsIndexer is again the most significant part of the indexing


was (Author: mblaesing):
Thank you for the explanation - with the generated projects indeed I found, 
that the SimpleFileOwnerQueryImplementation will normally return the wrong 
project. With this in mind I reverted the question: How could we prevent 
netbeans from recognizing the legacy projects when MX support is present?

I came up with this:

[https://github.com/matthiasblaesing/netbeans/commit/460042be723b28b430f88c77c1ee7ab18f364892]

The problem from my POV is, that 
org.netbeans.modules.project.ant.AntBasedProjectFactorySingleton will recognize 
the ant based project and legacy project support kicks in. But NetBeans 
supports multiple projects per project and will default to the one with the 
ProjectFactory of the lowest position. So two thing are done in the above patch:
 # org.netbeans.modules.java.mx.project.SuiteFactory got a position and that 
position is lower than the one from AntBasedProjectFactorySingleton
 # The factory was modified, to detect MX project not only for the current 
directory, but also two levels up

What do you think? I'll switch to a build with this merged and see if it does 
what I expect it to do.

 

> 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: commits-unsubscr...@netbeans.apache.org
For additional commands, e-mail: commits-h...@netbeans.apache.org

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

Reply via email to