NetBeans Module Automatic Unload

As a quick follow-up to my previous post on the NetBeans Feature on Demand, I was thinking about how nice it would to further optimize the NetBeans startup time (via module unloading).

When NetBeans loads, it processes and loads each module that is active. To speed up this process I manually uninstall modules I know I will never use, as well as deactivating modules I use infrequently. It would be nice if the IDE could monitor and do this for me.

NetBeans already has a module called the UI Gestures Collector. The NetBeans team has used this to gather intelligence on what toolbars, menus, and keyboard keys NetBeans users actually use. There’s no reason they couldn’t further augment this to specifically identify which modules are not being called often or at all. Then these modules could be safely deactivated (but left installed). This could be useful since some users may not deactivate certain modules if they aren’t 100% clear that they may or may not use it. This in turn could help speed up the load time in the long run, especially as NetBeans collects more and more data on which modules you do and do not use.

Some specific items to consider for this type of functionally:

– make a variable in the Options section to enable/disable this feature (or perhaps a checkbox field in the Plugin Manager itself).

– provide a variable to allow the user to specify that IF NetBeans decides to turn off an unused module that it should do so silently, or prompt the user to confirm before deactivating.

– perhaps (and I’m not really sure on the value of this one), a setting could be provided that lets the user specify a frequency threshhold that is used by the module deactivation algorithm in deciding if a module should be deactivated.

– tie this into the Feature On Demand capability so that if a user clicks a menu item or activates a project wizard, the feature can be re-enabled automatically.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>