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