views:

368

answers:

4

Is there a way to know how much memory is consumed by each Eclipse plugin separately?

+1  A: 

I would be quite surprised if this were possible, because you would have to have an unambiguous way of determining which plugin "owned" a particular object on the heap.

Simon Nickerson
A: 

I don't know any generic answer but maybe it is possible to get the memory usage of some plugins: as the framework loads plugins on demand if you can read the heap size before and after the activation of the plugin it might give an idea.

To check which plugins are loaded, the 'ss' command can be used in the OSGi console.

Zoltán Ujhelyi
+3  A: 

Take a heap dump and analyse it with e.g. the Eclipse Memory Analyser.

For more information, see Analyzing Equinox Bundle Dependencies with Memory Analyzer

Robert Munteanu
Even though this is only good for a one-time snapshot analysis and cannot be used at runtime, I think it is the best bet to get an idea of the memory usage of a certain plugin. It is gonna be tedious work, but I do not see any other chance. Make sure you use a representative dataset for your plugin, or your results could be far off.
Daniel Schneller
A: 

Eclipse 3.1 has a built-in Memory Monitor (aka Heap Status) Plugin, which is a part of org.eclipse.ui.workbench_3.1.0.jar You have to run Eclipse in debug mode for seeing the monitor in right lower corner.

Also check FreeMem plugin:FreeMem plugin

In Eclipse you can uninstall-->measure memory-->install-->repeat cycle

That way you can find out about any/all memory utilization of each plugin. Good luck with this task. I'd be interested to see the results because I see that some plugins utilize much more memory then others.

Roman Kagan