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.
Our performance tests find out regression on startup. It seems like it rises between 200503301800 and 200504010747 builds. JDK1.5.2_02(fcs) The biggest part of regression is in "Preparation phase" measured time. RHE Linux 3 JDS 2 Solaris 9 Solaris 10 Win 2000 Win XP -------------------------------------------------------------------------------------------- 200504010747 IDE run 795 20761 1432 2705 650 694 ModuleSystem.readList finished 1362 1251 1926 1901 1410 1526 Preparation finished 14075 14110 23617 22920 12837 14310 Startup Time 1st usage 21620 41349 34572 34550 18645 21115 Subsequent usage 20369 40376 32141 31987 17298 19693 Startup Time with 10 opened java files 24831 58053 61548 63035 22203 25442 Window system loaded 2055 1957 3501 3462 1203 1668 Window system shown 2533 3298 3590 3289 2371 2883 -------------------------------------------------------------------------------------------- 200503301800 IDE run 729 20770 1403 2576 644 692 ModuleSystem.readList finished 1288 1243 1885 1849 1404 1515 Preparation finished 10663 11488 16857 16272 11019 12235 Startup Time 1st usage 18081 39032 27352 28033 16963 19172 Subsequent usage 16796 37908 25024 25320 15528 17510 Startup Time with 10 opened java files 34242 55643 55341 55713 33749 38223 Window system loaded 2970 2060 3437 3385 1987 2359 Window system shown 2771 3338 3514 3340 2319 2881 --------------------------------------------------------------------------------------------
So I've found it : I'll attach output from startup perf logs and you can see that the build 200504010747 contains : ModuleInstall for org.netbeans.modules.vcscore.javacorebridge/1 called dT=2499 but this line isn't present in log from build 200503301800 !
Created attachment 21399 [details] Log file generated on build 200503301800
Created attachment 21400 [details] Log file generated on build 200504010747
The module install spents most 100% of its time in java.util.Locale.getAvailableLocales() called from VariableIO.getLocalizedConfigurations(). Note that we no longer have the regresion in VCS versioning submenu as we moved it to startup. Apparently the configurations are more expensive in 4.1 after Martin's fix of issue #52227. Regarding startup - why do we initialize profiles info now ?!
This is a problem in initialization of the global VCS providers. We need to attach a listener to them from javacorebridge, which cause their initialization. The initialization needs to be made as lightweight as possible. It takes 852ms for me on Pentium M 1.7GHz.
After the lazy initialization, the time fell down to 10ms: /cvs/vcsgeneric/src/org/netbeans/modules/vcs/advanced/globalcommands/GlobalCommandsProvider.java,v <-- GlobalCommandsProvider.java new revision: 1.10; previous revision: 1.9
Created attachment 21418 [details] The textual diff of the fix.
Can someone from perf. team please verify this in trunk? Thanks.
Looks good at least for vanilla start. I will wait for Marian results. Probably only users using VCS support will suffer from this regression. Anyway this can be tracked in issue #56980 (slow versioning submenu).
Code deferral from contructor to initialize seems OK. REVIEWED
I am waiting for the first continual build with this fix and I'll run startup perf tests on it .
It seems like it's fixed in continual build - verified.
mentlicher, can you commit the fix to q-build branch (release41-QBE200504051930)?
Which branch is the correct one? There are two: release41-QBE200504060831 release41-QBE200504051930 In the q-build report there is number 200504060831.
Sorry, this one is correct release41-QBE200504060831. Thanks
O.K. Thanks, it's there: /cvs/vcsgeneric/src/org/netbeans/modules/vcs/advanced/globalcommands/GlobalCommandsProvider.java,v <-- GlobalCommandsProvider.java new revision: 1.9.6.1; previous revision: 1.9
The fix is merged into release41 branch: /cvs/vcsgeneric/src/org/netbeans/modules/vcs/advanced/globalcommands/GlobalCommandsProvider.java,v <-- GlobalCommandsProvider.java new revision: 1.9.2.1; previous revision: 1.9
verified in NB4.1 (200504111930) thanks to everybody