YES! My image went from 65Mb to 34Mb (it contains Seaside/Bootstrap and several resources).
Thanks a lot, you guys (and everybody else who contributes) rock! Let's hope this solves the issue. > On 25 Mar 2015, at 11:26, Andrei Chis <[email protected]> wrote: > > To load the latest version in an image execute: > > { { 'ConfigurationOfRubric'. 'AlainPlantec'. 'Rubric' }. > { 'ConfigurationOfGlamourCore'. 'Moose'. 'Glamour' }. > { 'ConfigurationOfGTInspectorCore'. 'Moose'. 'GToolkit' }. > { 'ConfigurationOfGTPlaygroundCore'. 'Moose'. 'GToolkit' }. > { 'ConfigurationOfGTSpotter'. 'Moose'. 'GToolkit' }. > { 'ConfigurationOfGToolkitCore'. 'Moose'. 'GToolkit' }. > } do: [ :spec | > Gofer new > smalltalkhubUser: spec second project: spec third; > package: spec first; > load ]. > ConfigurationOfGToolkitCore loadDevelopment. > > Then run cleanUp: > > Smalltalk cleanUp: true except: #() confirming: false. > > Now only the latest instance of playground/spotter is not garbaged collected, > but that would be fixed very soon. > > > Cheers, > Andrei > > > > > On Wed, Mar 25, 2015 at 11:21 AM, Sven Van Caekenberghe <[email protected]> wrote: > Please tell us when this gets integrated so that we can test the effect. > > Or to go faster, please give some instructions (an executable expression) > that we can execute in the latest image to load the relevant changes. > > We need more eyeballs. > > > On 25 Mar 2015, at 09:50, Tudor Girba <[email protected]> wrote: > > > > Up to now, we identified two issues that lead to objects not being garbage > > collected: > > > > - GLMHintableActionButtonBrick triggers a singleton asynctask that was not > > cleaned after the task was ready. Now, that problem should be solved in GT. > > > > - RubFindReplaceService has a Singleton class variable. At the same time, > > RubFindReplaceService also keeps a reference to the textArea which is part > > of the morph tree and will prevent the whole UI that includes it to be > > garbage collected. We are working on dealing with this issue. > > > > There might be other issues. We need to keep looking. > > > > Cheers, > > Doru > > > > > > > > On Wed, Mar 25, 2015 at 8:52 AM, stepharo <[email protected]> wrote: > > Hi henrik > > > > your analyses are great. > > What do you think about > > > > GTSpotterStep>>#candidates > > > > ^ candidates ifNil: [ > > candidates := GTSpotterCandidatesList new. > > candidates announcer weak subscribe: GTSpotterCandidateAdded do: [ > > self candidates hasOnlyOneItem ifTrue: [ self selectFirst ] ]. > > candidates announcer weak subscribe: GTSpotterAllCandidatesAdded > > do: [ self selectFirst ]. > > candidates announcer weak subscribe: GTSpotterAllCandidatesRemoved > > do: [ self selected: nil ]. > > candidates ] > > > > Le 24/3/15 21:38, Henrik Sperre Johansen a écrit : > > > > A tiny bit of code review while I'm at it... > > > > GTSpotterResultsBrick >> initialize > > super initialize > > self band hSpaceFill. > > self announcer weak subscribe: GLMBrickScrollPositionChanged send: > > #onScrolled to: self > > > > This is a tempting, but sneaky anti-pattern, you should never, ever, ever > > have to subscribe to your own announcer: > > The reason for calling it an anti-pattern is; if your code actually depends > > on this, it means other sources might invoke changes in you indirectly > > through your announcer, which quickly becomes debugging hell if you allow > > it, and something screws up. (I speak from experience) > > > > It's much easier to understand when done directly, in this case that means > > extending the super method where announcement is made: > > > > GTSpotterResultsBrick >> privateScrollPosition:anInteger > > super privateScrollPosition:anInteger. > > self onScrolled > > > > Cheers, > > Henry > > > > P.S. Announcements are objects, they are intended to hold the data > > subscribers might be interested in. > > Whenever you find yourself writing something like: > > someAnnouncer announce: SomeAnnouncement new > > ask yourself twice if that may lead to subscribers accessing state that > > would more naturally be part of the announcement through other channels > > (such as keeping extra instvars, etc). > > > > > > > > -- > > View this message in context: > > http://forum.world.st/Some-Memory-Leak-tp4814779p4814912.html > > Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com. > > > > > > > > > > > > > > > > > > -- > > www.tudorgirba.com > > > > "Every thing has its own flow" > > >
