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.
There is possible performance gain if we change some places where Filesystems API is used to direct access to files. Jesse wrote: I have also noticed (OptimizeIt) that the scan of sources performed during startup is using the Filesystems API. This seems really dumb to me; of course creating all those FileObject's etc. is going to produce a huge amount of overhead relative to just scanning File's (and ZipFile's). I guess it may be necessary if you want to hold on to each folder so as to listen for changes (though if you are really doing that, your runtime performance and memory usage is going to be atrocious anyway). Also at least acc. to OI, when your scanned projects are in a CVS mount, you are spending more time refreshing CVS status annotations than actually looking for changed sources! Another place is code completion where following chain is used: NbCompletionJavaDoc.getClassElement -> ClassElementFinder -> ClassPath.findPath -> JarFS. Of course we have to measure the imapct but expectation is that it will at least reduce the amount of garbage produced if we use it on isolated places.
*** Issue 43765 has been marked as a duplicate of this issue. ***
Moved to new subcomponent java/javacore.
Implemented in trunk. Scanning now directly used java.io.* package. Removing ClassUpdater.java; /cvs/java/javacore/src/org/netbeans/modules/javacore/ClassUpdater.java,v <-- ClassUpdater.java new revision: delete; previous revision: 1.11 done Checking in ExclusiveMutex.java; /cvs/java/javacore/src/org/netbeans/modules/javacore/ExclusiveMutex.java,v <-- ExclusiveMutex.java new revision: 1.10; previous revision: 1.9 done Removing FileScanner.java; /cvs/java/javacore/src/org/netbeans/modules/javacore/FileScanner.java,v <-- FileScanner.java new revision: delete; previous revision: 1.7 done Checking in JMManager.java; /cvs/java/javacore/src/org/netbeans/modules/javacore/JMManager.java,v <-- JMManager.java new revision: 1.21; previous revision: 1.20 done Checking in JavaCoreModule.java; /cvs/java/javacore/src/org/netbeans/modules/javacore/JavaCoreModule.java,v <-- JavaCoreModule.java new revision: 1.5; previous revision: 1.4 done Removing JavaUpdater.java; /cvs/java/javacore/src/org/netbeans/modules/javacore/JavaUpdater.java,v <-- JavaUpdater.java new revision: delete; previous revision: 1.10 done Removing ResourceUpdater.java; /cvs/java/javacore/src/org/netbeans/modules/javacore/ResourceUpdater.java,v <-- ResourceUpdater.java new revision: delete; previous revision: 1.4 done Processing log script arguments... More commits to come... Checking in jmiimpl/javamodel/ResourceImpl.java; /cvs/java/javacore/src/org/netbeans/modules/javacore/jmiimpl/javamodel/ ResourceImpl.java,v <-- ResourceImpl.java new revision: 1.15; previous revision: 1.14 done
Created attachment 16029 [details] Measurement
I measured the impact of this change. Looks very good, improves significantly the initial scan. 1) Initial scan of JDK and project at jEdit project open: before the change - 2:23 on W2K, 1:24 on Linux after the change - 2:03 on W2K, 1:01 on Linux 2) Update after IDE restart before the change - 9.2s on W2K, 4s on Linux after the change - 9.1s on W2K, 4s on Linux
Reorganization of java component