On 27 Jun 2014, at 14:00, Goubier Thierry <thierry.goub...@cea.fr> wrote:

> It seems to depend on the Nautilus window state. If you've just opened it, 
> then nothing seems to be amiss. If you start to select things in it, you 
> start to see time spent in updateClassView, but why?

I just found that the instances are being kept by the 
MorphTreeListManager#selectedMorphs instvar. So, that observation is correct: 
you need to have a package selected.

What seems to happen is that on every package load, the Nautilus package tree 
is updated (which means a PackageTreePackageNodeModel is created for each 
package in the image via #asNautilusNodeWithModel:).
This update does not clear the selectedMorphs list and just this single 
reference seem to keep the entire package tree model and its Morphs in memory.

There were 496 morphs in the selectedMorphs list and when I cleaned that, all 
trailing Morphs and PackageNodeModelNodes (and all the other garbage) could be 
gc'ed.

On to investigating the growth of the selectedMorphs variable...

Johan

Reply via email to