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.
Build: NetBeans IDE Dev (Build 100331-eb8d22d7ddd4) VM: Java HotSpot(TM) Client VM, 10.0-b19, Java(TM) SE Runtime Environment, 1.6.0_04-b12 OS: Windows XP Maximum slowness yet reported was 7359 ms, average is 7359
Created attachment 96475 [details] nps snapshot
Strange snapshot, shows just 203ms.
The other snapshots in the report are more interesting, showing long waits (~20s) on native FS calls like WinNTFileSystem.getBooleanAttributes or canonicalize0. Could possibly be worth logging such files. e.g. http://statistics.netbeans.org/exceptions/exception.do?id=364377
Created attachment 97603 [details] nps snapshot I had just opened NetBeans, and it was loading a multi module Maven project (1 parent, 3 child projects). I had also opened an XML file by dragging and dropping it into NetBeans, and I did "Remove trailing spaces" and "Format" menu actions on it.
core-main#ec6876f08f7a
Integrated into 'main-golden', will be available in build *201004210200* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress) Changeset: http://hg.netbeans.org/main/rev/ec6876f08f7a User: Jaroslav Tulach <jtulach@netbeans.org> Log: #183308: Logging more info about files exceeding 500ms during their normalization
I have looots of such warnings, what should I do with them?
e.g. WARNING [org.openide.filesystems.FileUtil]: FileUtil.normalizeFile(/export/work/cnd-main/cnd.modelimpl/build/classes) took 5,623 ms. Result is /export/work/cnd-main/cnd.modelimpl/build/classes
either fix it or remove this warning
I guess the answer to your individual case is clear: stop using NFS. The WARNING is there to identify users who are not using NetBeans according to recommended policy (http://wiki.netbeans.org/FaqScanningAndIndexingPerformanceHints#Use_fast_filesystem.2Fdisk) - e.g. who have sources on slow disks. In case you can prove that your sources are on local disk, let me know and you'll be allowed to provide more information. To get on the same wave with you, let me summarize: Either move your sources to local disk or stop complaining.
Many clients use findFileObject (even from the AWT) and as soon as it goes to physical fs there will be performance issues... see bug 182064 for example.
there is an implementation in java.net.URLStreamHandler (inside parseURL) in pure java, can't we copy it?
copying java.net.URLStreamHandler can help Unix users. Cache can help other systems (i.e. on windows canonicalPath is called which is I/O operation)
org.netbeans.modules.cnd.utils.cache.CndFileUtils has two methods with cache: normalizeFile normalizeAbsolutePath
OK, caching the FileUtil.normalizeFile: core-main#52bb45cda002
Great! Isn't it a good candidate for 6.9.1?
Great! Let me mark it
This patch caused test failures. Fixed in: core-main #8287a13dabb0
verified
Transplanted core-main #52bb45cda002 into release691 #81f9a50b71eb and core-main #8287a13dabb0 into release691 #3e2f5b657883
Integrated into 'main-golden', will be available in build *201006180001* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress) Changeset: http://hg.netbeans.org/main/rev/52bb45cda002 User: Jaroslav Tulach <jtulach@netbeans.org> Log: #183308: Caching result of FileUtil.normalizeFile. Code inspired by CndFileUtils.
One observation related to the "don't put your sources on network drives" argument. More than 10 years ago I was working in team writing a large client server system with clients being on Windows and the server being on Unix. The client was being developed in C++ using VisualStudio. The source files were all located on Solaris and being accessed through Samba. VS checks files for external changes every other second, therefore this put quite a load on the file server. BUT: 40 developers were able to work concurrently in this setup. Therefore my opinion is (with all the progress with HW and networks during the last 10 years) that this argument is simply not valid. If putting sources on a network drive is not possible with NetBeans (like it was with VS more than 10 years ago), it is very simply just broken.