This is really great!

Le 26/3/15 14:24, Andrei Chis a écrit :
Now, with Alain's help, also the memory leak from Rubric is solved.
All fixes will be in the next version, which will hopefully be ready today.

Cheers,
Andrei

On Wed, Mar 25, 2015 at 7:05 PM, stepharo <[email protected] <mailto:[email protected]>> wrote:

    +1


    Le 25/3/15 11:52, Sven Van Caekenberghe a écrit :

        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]
            <mailto:[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] <mailto:[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] <mailto:[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] <mailto:[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 <http://www.tudorgirba.com>

                "Every thing has its own flow"









Reply via email to