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.
I measured 2400ms for the first invocation of Versioning/CVS submenu on my slow W2K machine. This is too long time. Should be optimized. (It does not matter which of the submenus you invoke first, if CVS, PVCS or VSS, this first invocation takes long.)
Created attachment 21133 [details] At least one AWT thread stacktrace
Tonda is right, we are measuring values arround 5s !!! for first invocation. See measured values from performance tests : RHE Linux 3 4785 JDS 2 3618 Solaris 9 7283 Solaris 10 7328 Win 2000 3187 Win XP 5171
Ups, previous numbers are about Versioning main menu !!! (related to issue 54919)
*** Issue 54919 has been marked as a duplicate of this issue. ***
Once again (sorry) , the numbers are correct : test case: - run IDE - push Versioning main menu - select CVS submenu -> CVS submenu is painted... JDK 5.0_02 , NB4.1 (200503242007) RHE Linux 3 4785 JDS 2 3618 Solaris 9 7283 Solaris 10 7328 Win 2000 3187 Win XP 5171
We've made a performance fix into 4.0 regarding the main Versioning menu - see issue #38108. I'm afraid that we can not do much about it now. The times are much worse then that reported in issue #38108, so I may have a quick look at it if I find some regression. But I don't think we'll be able to really fix that (< 100ms) now.
Well, I'd think there's still a lot of room for improvement between 100 ms and 5 seconds.
For a while we moved this to a startup. Now the problem is back in menu and the observation from issue #57503 holds here. Most of the time is spent in java.util.Locale.getAvailableLocales() called from VariableIO.getLocalizedConfigurations(). Very likely this is caused by Martin's fix of issue #52227. I guess this should be P2 because >2 seconds quite bad perfromance and it is worse than anytime sooner.
Radim's observation is correct. Locale.getAvailableLocales(); takes 691 ms! while the whole ProfilesFactory.initProfilesInfo() takes 741 ms. Therefore if we should improve this, we *must* get rid of Locale.getAvailableLocales() call. :-(((
It is possible to fix this, but it will affect the functionality! The profile names must not contain underscore. Otherwise they will be treated as localized and ignored (if the letters that follows the undersore will not match the current locale). Due to this fact, we must add warning dialogs on places where user is saving a new profile. This will be a UI change!
Fixed in trunk as proposed. Please verify the behavior in trunk. The performance is much better, but please also verify the behavior of the question dialog that is opened when a profile with an underscore in it's name is being saved. Thanks. /cvs/vcsgeneric/src/org/netbeans/modules/vcs/advanced/Bundle.properties,v <-- Bundle.properties new revision: 1.102; previous revision: 1.101 /cvs/vcsgeneric/src/org/netbeans/modules/vcs/advanced/ConfigSaveAsDialog.java,v <-- ConfigSaveAsDialog.java new revision: 1.20; previous revision: 1.19 /cvs/vcsgeneric/src/org/netbeans/modules/vcs/advanced/profilesSettings/VcsSettingsNode.java,v <-- VcsSettingsNode.java new revision: 1.7; previous revision: 1.6 /cvs/vcsgeneric/src/org/netbeans/modules/vcs/advanced/variables/VariableIO.java,v <-- VariableIO.java new revision: 1.32; previous revision: 1.31
This issue is actually caused by: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4908648 Therefore this "fix" can be reverted after Locale.getAvailableLocales() has an acceptable performance.
Created attachment 21543 [details] The textual patch of this issue.
It seems OK. REVIEWED
Thanks for the review, the fix is merged into release41 branch: /cvs/vcsgeneric/src/org/netbeans/modules/vcs/advanced/Bundle.properties,v <-- Bundle.properties new revision: 1.101.4.1; previous revision: 1.101 /cvs/vcsgeneric/src/org/netbeans/modules/vcs/advanced/ConfigSaveAsDialog.java,v <-- ConfigSaveAsDialog.java new revision: 1.19.4.1; previous revision: 1.19 /cvs/vcsgeneric/src/org/netbeans/modules/vcs/advanced/profilesSettings/VcsSettingsNode.java,v <-- VcsSettingsNode.java new revision: 1.6.14.1; previous revision: 1.6 /cvs/vcsgeneric/src/org/netbeans/modules/vcs/advanced/variables/VariableIO.java,v <-- VariableIO.java new revision: 1.31.4.1; previous revision: 1.31
Verified in 4.1. I measured 531ms for the first invocation of Versioning/CVS submenu on the slow machine. Quite an improvement in comparison to the original 2400ms...