({{iz|182653}}) Use data from old index while indexing is running (where possible)

+

[[Image:no_EditorPlan68.png | Image:no_EditorPlan68.png]]

+

({{iz|182653}}) Use data from old index while indexing is running (where possible) '''60 days'''

+

Some features like Lucene Indexes already lock the index only in time of index update not during the whole indexing but the index reader client is negatively affected by the IO. Improving the index caching should help, see Improve Go To Type.

Some features like Lucene Indexes already lock the index only in time of index update not during the whole indexing but the index reader client is negatively affected by the IO. Improving the index caching should help, see Improve Go To Type.

{{iz|186744}} (API) Adding library causes huge I/O load - deleting files on background does not solve the problem, it's already done on background. The rename and clean up in idleIO will work fine. But the idleIO is not an API (even friend API). It's in the MasterFS FileChangeManager. This requires an idleIO to be added at least into the ProvidedExtensions like runPriorityIO. '''(Tomas)'''

+

{{iz|186744}} (marked as fixed in 7.0???) (API) Adding library causes huge I/O load - deleting files on background does not solve the problem, it's already done on background. The rename and clean up in idleIO will work fine. But the idleIO is not an API (even friend API). It's in the MasterFS FileChangeManager. This requires an idleIO to be added at least into the ProvidedExtensions like runPriorityIO. '''(Tomas, 2 days)'''

-

{{iz|195814}} Improve Go To File performance for non source file. The Go To File has two parts. The first one is handling source files and is provided by parsing.api. This part is reasonably fast (for typical set up < 1s).

+

{{iz|195814}} Improve Go To File performance for non source file.

-

The second part handles files which are not under source roots (parsing.api does not know about them) and it does file system search. The second part may take minutes.

+

The Go To File has two parts. The first one is handling source files and is provided by parsing.api. This part is reasonably fast (for typical set up < 1s).

+

The second part handles files which are not under source roots (parsing.api does not know about them) and it does file system search. The second part may take minutes. '''(Tomas, 5 days)'''

-

Make indexers cancelable, see {{iz|197811}}

+

Make indexers cancelable, see {{iz|197811}} '''(Tomas, 10 days)'''

=New features=

=New features=

Line 51:

Line 54:

==Misc Features==

==Misc Features==

-

{{iz|196937}} - Drag and drop of a Web Service client code into Java ME project for Telefonica

+

{{iz|196937}} - Drag and drop of a Web Service client code into Java ME project for Telefonica '''(Anton)'''

{{iz|174506}} Run File for any java file with main methods should accept command line parameters

+

{{iz|174506}} Run File for any java file with main methods should accept command line parameters '''(Tomas, 3 days)'''

-

{{iz|139865}} Cannot run Applet project

+

{{iz|139865}} Cannot run Applet project '''(Tomas, 3 days)'''

-

{{iz|181265}} Add filter warnings possibility into the output window

+

Improve creation of a Java Project From Existing Sources {{iz|194533}} and {{iz|190242}}. Partially done in NB 6.9, the wizard is now able to find source roots in selected folder but it should do it automatically for base project folder. The base project folder should be accessible from files tab as requested in {{iz|194533}}. '''(Tomas, 5 days)'''

-

Improve creation of a Java Project From Existing Sources {{iz|194533}} and {{iz|190242}}. Partially done in NB 6.9, the wizard is now able to find source roots in selected folder but it should do it automatically for base project folder. The base project folder should be accessible from files tab as requested in {{iz|194533}}.

+

{{iz|197734}} Modify J2SEProject build scripts to use TestNG if available '''(Tomas, 10 days)'''

-

{{iz|197734}} Modify J2SEProject build scripts to use TestNG if available

Move stable part of java.api.common into regular api (java.project). Currently there in no way how 3rd party project implementors can use the utilities in java.api.common which causes copy paste programming. At least some parts of this module like QuerySupport should be cleaned up and moved to stable API.

+

Move stable part of java.api.common into regular api (java.project). Currently there in no way how 3rd party project implementors can use the utilities in java.api.common which causes copy paste programming. At least some parts of this module like QuerySupport should be cleaned up and moved to stable API. '''(Tomas, 5 days)'''

-

Remove implementation dependency of java.source on parsing.api. A support friend bridge module has to be created. The parsing.api and java.source will depend on it.

+

Remove implementation dependency of java.source on parsing.api. A support friend bridge module has to be created. The parsing.api and java.source will depend on it. '''(Tomas, 15 days)'''

-

Make parsing.api a stable API. The parsing.api is a base API for any language implementation in the IDE. But the API is still in development mode. The parsing.api should become a stable API.

+

Make parsing.api a stable API. The parsing.api is a base API for any language implementation in the IDE. But the API is still in development mode. The parsing.api should become a stable API. '''(Tomas, 1 days)'''

Show most useful completion items at the top - extension of smart (type) code completion.

Show most useful completion items at the top - extension of smart (type) code completion.

Current revision as of 09:21, 19 September 2011

Disclaimer: The content of this NetBeans development wiki page is intended for pre-planning purposes ONLY. The development, release, and timing of any feature or functionality described here should not be treated as final, and is subject to change at any time at the sole discretion of Oracle. For information about NetBeans software releases please visit the NetBeans Roadmap.

Annotation Handling Performance

Transactional index

(Issue 182653) Use data from old index while indexing is running (where possible) 60 days

Some features like Lucene Indexes already lock the index only in time of index update not during the whole indexing but the index reader client is negatively affected by the IO. Improving the index caching should help, see Improve Go To Type.

Complete Transactional Index support requires several changes:

The threading model of parsing has to be changed from a single dedicated parser thread to a concurrent model where the indexer (parser) is called by a non dedicated thread concurrently to the parser thread. This is an incompatible API change in the threading model which may affect existing languages depending on the single threaded model. On the other hand the Indexing API never declared the single threaded model.

The disk caches have to be transactional. The Lucene index supports transactions, but a custom storage implementation such as Java Signature Files have to be updated to support transactions as well. The transactional cache introduces higher IO load as the disk operations are done twice (the first time in a log phase, the second time in a commit phase - simpler).

The biggest problem is how to avoid OOM situations. Currently the dedicated parser thread uses VM telemetry to prevent OOME. This approach will not work as there will be more parsing threads running concurrently and consuming memory.

The JavaCustomIndexer and JavaBinaryIndexer have to be rewritten so that they can handle requests even before the up-to-date check is finished.

Misc performance improvements

Issue 186744 (marked as fixed in 7.0???) (API) Adding library causes huge I/O load - deleting files on background does not solve the problem, it's already done on background. The rename and clean up in idleIO will work fine. But the idleIO is not an API (even friend API). It's in the MasterFS FileChangeManager. This requires an idleIO to be added at least into the ProvidedExtensions like runPriorityIO. (Tomas, 2 days)

Issue 195814 Improve Go To File performance for non source file.
The Go To File has two parts. The first one is handling source files and is provided by parsing.api. This part is reasonably fast (for typical set up < 1s).
The second part handles files which are not under source roots (parsing.api does not know about them) and it does file system search. The second part may take minutes. (Tomas, 5 days)

Improve creation of a Java Project From Existing Sources Issue 194533 and Issue 190242. Partially done in NB 6.9, the wizard is now able to find source roots in selected folder but it should do it automatically for base project folder. The base project folder should be accessible from files tab as requested in Issue 194533. (Tomas, 5 days)

Move stable part of java.api.common into regular api (java.project). Currently there in no way how 3rd party project implementors can use the utilities in java.api.common which causes copy paste programming. At least some parts of this module like QuerySupport should be cleaned up and moved to stable API. (Tomas, 5 days)

Remove implementation dependency of java.source on parsing.api. A support friend bridge module has to be created. The parsing.api and java.source will depend on it. (Tomas, 15 days)

Make parsing.api a stable API. The parsing.api is a base API for any language implementation in the IDE. But the API is still in development mode. The parsing.api should become a stable API. (Tomas, 1 days)