[
https://issues.apache.org/jira/browse/NETBEANS-45?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16102099#comment-16102099
]
Jan Lahoda commented on NETBEANS-45:
------------------------------------
Attila: I personally don't think copying the info from one javac instance to
another is feasible. There are lots of tiny details that would need to be
solved, and the outcome would be quite fragile. I think we are in a much better
position fixing partial reparse (and enhancing its capabilities if we need and
can).
For reusing the old data, that's a lot similar to what partial reparse does.
For the lock, one possible way of thinking would be that it prevents other
tasks from interfering with completion evaluation, allowing completion to
compute the results faster.
Wade: I suggest to file reports for "Checking for external changes" to
FileSystems, I don't think that's related to Parsing&Indexing. For the
ParserQueue.waitReady, as far as I can tell in the dumps I've seen, the threads
are stopped/waiting. So I'd estimate their impact is negligible. AFAIK, these
are not provided by the Parsing&Indexing infrastructure, these are private to
the C/C++ (CND) support.
> Code completion is blocked for an extended period of time
> ---------------------------------------------------------
>
> Key: NETBEANS-45
> URL: https://issues.apache.org/jira/browse/NETBEANS-45
> Project: NetBeans
> Issue Type: Bug
> Components: editor - Parsing & Indexing
> Affects Versions: 9.0
> Reporter: Attila Kelemen
> Attachments: callstack.csv, cnd-csm-core-parser-queue-waitready.log,
> nb-jstack-cpu-high-checking-for-external-changes-with-gradle-and-maven-2017-04-19-10.log.tdump,
>
> nb-jstack-cpu-high-checking-for-external-changes-with-gradle-and-maven-2017-04-19-11.log.tdump,
>
> nb-jstack-cpu-high-checking-for-external-changes-with-gradle-and-maven-2017-04-19-12.log.tdump,
>
> nb-jstack-cpu-high-checking-for-external-changes-with-gradle-and-maven-2017-04-19-1.log.tdump,
>
> nb-jstack-cpu-high-checking-for-external-changes-with-gradle-and-maven-2017-04-19-2.log.tdump,
>
> nb-jstack-cpu-high-checking-for-external-changes-with-gradle-and-maven-2017-04-19-3.log.tdump,
>
> nb-jstack-cpu-high-checking-for-external-changes-with-gradle-and-maven-2017-04-19-4.log.tdump,
>
> nb-jstack-cpu-high-checking-for-external-changes-with-gradle-and-maven-2017-04-19-5.log.tdump,
>
> nb-jstack-cpu-high-checking-for-external-changes-with-gradle-and-maven-2017-04-19-6.log.tdump,
>
> nb-jstack-cpu-high-checking-for-external-changes-with-gradle-and-maven-2017-04-19-7.log.tdump,
>
> nb-jstack-cpu-high-checking-for-external-changes-with-gradle-and-maven-2017-04-19-8.log.tdump,
>
> nb-jstack-cpu-high-checking-for-external-changes-with-gradle-and-maven-2017-04-19-9.log.tdump,
>
> nb-jstack-cpu-high-checking-for-external-changes-with-gradle-and-maven-2017-05-30-10.log,
>
> nb-jstack-cpu-high-checking-for-external-changes-with-gradle-and-maven-2017-05-30-11.log,
>
> nb-jstack-cpu-high-checking-for-external-changes-with-gradle-and-maven-2017-05-30-12.log,
>
> nb-jstack-cpu-high-checking-for-external-changes-with-gradle-and-maven-2017-05-30-1.log,
>
> nb-jstack-cpu-high-checking-for-external-changes-with-gradle-and-maven-2017-05-30-2.log,
>
> nb-jstack-cpu-high-checking-for-external-changes-with-gradle-and-maven-2017-05-30-3.log,
>
> nb-jstack-cpu-high-checking-for-external-changes-with-gradle-and-maven-2017-05-30-4.log,
>
> nb-jstack-cpu-high-checking-for-external-changes-with-gradle-and-maven-2017-05-30-5.log,
>
> nb-jstack-cpu-high-checking-for-external-changes-with-gradle-and-maven-2017-05-30-6.log,
>
> nb-jstack-cpu-high-checking-for-external-changes-with-gradle-and-maven-2017-05-30-7.log,
>
> nb-jstack-cpu-high-checking-for-external-changes-with-gradle-and-maven-2017-05-30-8.log,
>
> nb-jstack-cpu-high-checking-for-external-changes-with-gradle-and-maven-2017-05-30-9.log,
>
> nb-jstack-cpu-high-opening-gradle-and-maven-projects-2017-01-18-10.log.tdump,
> nb-jstack-cpu-high-opening-gradle-and-maven-projects-2017-01-18-11.log.tdump,
> nb-jstack-cpu-high-opening-gradle-and-maven-projects-2017-01-18-12.log.tdump,
> nb-jstack-cpu-high-opening-gradle-and-maven-projects-2017-01-18-1.log.tdump,
> nb-jstack-cpu-high-opening-gradle-and-maven-projects-2017-01-18-2.log.tdump,
> nb-jstack-cpu-high-opening-gradle-and-maven-projects-2017-01-18-3.log.tdump,
> nb-jstack-cpu-high-opening-gradle-and-maven-projects-2017-01-18-4.log.tdump,
> nb-jstack-cpu-high-opening-gradle-and-maven-projects-2017-01-18-5.log.tdump,
> nb-jstack-cpu-high-opening-gradle-and-maven-projects-2017-01-18-6.log.tdump,
> nb-jstack-cpu-high-opening-gradle-and-maven-projects-2017-01-18-7.log.tdump,
> nb-jstack-cpu-high-opening-gradle-and-maven-projects-2017-01-18-8.log.tdump,
> nb-jstack-cpu-high-opening-gradle-and-maven-projects-2017-01-18-9.log.tdump,
> Screen Shot 2017-07-25 at 23.11.42.png
>
>
> Often times when editting a single file, code completion blocks for an
> extensive amount of time which makes code completion practically unusable.
> Looking at the threads of the IDE, code completion and parsing seems to be
> blocked by the attached thread (holding a lock).
> Note that I do not do anything but edit a single file and this happens
> frequently during editting even though there are no external changes.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)