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.

Bug 88020

Summary: Automatically detect unused features
Product: ide Reporter: _ gtzabari <gtzabari>
Component: Features On DemandAssignee: Antonin Nebuzelsky <anebuzelsky>
Status: NEW ---    
Severity: blocker    
Priority: P3    
Version: 6.x   
Hardware: All   
OS: All   
Issue Type: ENHANCEMENT Exception Reporter:

Description _ gtzabari 2006-10-26 05:37:51 UTC
I propose we add a feature similar to Windows XP's "remove unused desktop items"
wizard.

Users would be presented with a "Usage optimization wizard". During normal usage
Netbeans would simply have to remember when was the last time any given feature
was used. For example, when was the last time the user collapsed or expanded a
block of code. Then, when this wizard is run it would list all features that
have been used infrequently or not at all in the past and based upon that
knowledge it would recommend shutting them down (for the sake of improving
performance).

A nice side-effect of disabling unused features is that the user will gain more
work-area real estate as unused toolbars are removed.

Now, the beauty of this feature is that it will have a fail safe button. If at
any point the user want to use a feature that is mysteriously missing and he
can't remember how to bring it back all he needs to do is go back into the
"usage optimization wizard" and hit the "reenable all modules" button. Voila,
good as new!

Impact:

- I believe the overhead of remembering when a feature was last used should be
cheap.

- The benefit of disabling unused modules is extra screen real-estate (in the
case of toolbars and menu items which are no longer displayed), reduced memory
footprint, cpu load and faster startup time.

- The beauty of this wizard is its ease-of-use. It takes a lot of the guesswork
out of enabling/disabling modules and improves performance for lay users.

- You can implement this feature incrementally. At the beginning try this out on
some low-hanging fruit like code-folding and the editor toolbar (on top) and if
it goes well other components can integrate themselves into the wizard as time
goes by.
Comment 1 Petr Dvorak 2008-04-22 14:17:43 UTC
I think this feature would not work too well in the way you have described it...

Real impact:

- thousands of i-net discussion threads about: "I had this feature in NB but now it is gone, why did the NB guys removed
it?" or "There is a bug in NB - items just disappears from the menus"

- some useful but not frequently used features will not be available when needed - if you work on various projects, you
can use some feature million times in one day and not to use it at all another day next month. To make the items
available, you would have to go through the "fail-safe" dialog or something, it is not too handy.

However, I like the idea of saving space by hiding unused items and I can imagine someone might try to turn it on (I
think it definitely shouldn't be ON by default).

It just shouldn't work like "remove unused desktop items" but like "hide unused menu items" - you know this feature from
XP too. If you open some menu, there are items that are frequently used and one extra item in the bottom of the menu -
an arrow. If you click this arrow, the rest of the menu is expanded, all items from the menu are visible.

It wouldn't work well on the pop-up menu though...
Comment 2 Petr Dvorak 2008-04-22 14:21:53 UTC
[note: what I wanted to say was: "Do not hide the items, just make them collapsed"]
Comment 3 _ gtzabari 2011-10-05 17:12:37 UTC
Please revisit this issue. I believe most of it has been addressed by the Ergonomics project. The only feature missing is making the process more dynamic. Right now Netbeans will activate features on demand, but it never suggests disabling them (or disables them automatically if idle for a long time).