> Am 01.04.2020 um 12:17 schrieb Richard O'Keefe <rao...@gmail.com>:
>
> ProtoObject>>become: is two-way in Pharo.
> "...Swap the object pointers of the receiver and the argument.
> All variables in the entire system that used to point to the
> receiver now point to the argument, and vice-versa."
>
> In the unlikely event that I have understood correctly,
> Array>>elementsForwardIdentityTo:
> is Pharo's one-way become.
>
It is #becomeForward:
Norbert
> On Wed, 1 Apr 2020 at 22:43, jtuc...@objektfabrik.de
> <jtuc...@objektfabrik.de> wrote:
>>
>> Tim,
>>
>> okay, so I understand the reason. Thanks for clarifying/confirming?
>>
>> I don't think VAST has two-way become. IIRC, VW has. At least I can tell you
>> using nil instead of String new has worked for me on VAST versions ever
>> since 3.0 in the early nineties.
>>
>> What about Pharo? Does it do one-way or two-way become?
>>
>>
>> Joachim
>>
>>
>>
>> Am 01.04.20 um 10:29 schrieb Tim Mackinnon:
>>
>> Yeah, I was taught (and it may be out of date), that as become: is a 2 way
>> operation the identity of nil (as a singleton) would get swizzled, so it was
>> safer to create a simple new object that could be easily gc’d (that’s what I
>> vaguely recall anyway). (This was in early VA from the OTI guys, but maybe
>> that gets handled better in modern VA, as I think become: is two way in VA
>> right?)
>>
>> Tim
>>
>> On 1 Apr 2020, at 08:11, jtuc...@objektfabrik.de wrote:
>>
>> Tim,
>>
>> out of curiosity: why do you suggest to create hundreds of thousands of
>> Strings instead of become: nil?
>>
>> Does Pharo do two-way become: ?
>> I'be been nilling instances for a little over 2 decades in VAST so far and
>> never had any troubles with it...
>>
>> Other than that: the become: nil (or String new as you suggest) thing was
>> the first that came to my mind for the intermediate solution as well. Of
>> course that doesn't fix the code which doesn't dispose of the objects in the
>> UI or model...
>>
>>
>> Joachim
>>
>>
>>
>>
>> Am 01.04.20 um 08:42 schrieb Tim Mackinnon:
>>
>> Hi Russ - a quick look at your stats seems to indicate that something is
>> holding on to your model, I didn’t understand the first object growing by 2,
>> but the second increases by 1 each time, and it looks like some form of root
>> object holding on to the others ? This of course means the GC can’t reclaim
>> the chain of objects if something is holding on to that root globally.
>>
>> Assigning something in the playground will hold onto it (I believe) so you
>> can continue to reuse and inspect it - so that’s expected, but this looks
>> like something in your UI?
>>
>> You can break the chain manually (but it’s not a full solution), simply
>> iterate over your root and become: String new (Save your image before doing
>> it and see if it works to free up the cycles). Eg try something like this
>> (haven’t tried this in Pharo myself, but worked in VA, so it should work
>> here)
>>
>> MyRootModel allInstances do: [ :m | m become: String new ]
>>
>> If this works and reduces your memory usage, you now need to inspect one of
>> those MyRootModel instances and see who is referencing it, and explain why.
>> This is Sven’s pointerTo explanation.
>>
>> For roots, you sometimes can use a WeakDictionary so that when nothing is
>> referencing them, they get gc’d if you are doing some caching or have some
>> factory concept.
>>
>> It’s not uncommon to hit this when you get your system nearing completion ,
>> it’s the downside of not having to worry about memory referencing -
>> ultimately you have to worry about it at the edges.
>>
>> It is possible there is a Pharo bug, as over time I see large Pharo images
>> but I was just messing around and put it down to failed experiments.
>>
>> Hope this helps.
>>
>> Tim
>>
>> On 31 Mar 2020, at 20:47, Russ Whaley <whaley.r...@gmail.com> wrote:
>>
>>
>> Here is some additional data - attached - I checked the number of instances
>> on select Classes before a UI load, during the UI load and after the UI load
>> (and again). The class instances grow as expected, but do no release. I'm
>> doing something wrong. I'm going to try a fresh image next, however, I
>> expect the same thing to happen, just starting over at zero.
>>
>>
>>
>> On Tue, Mar 31, 2020 at 12:57 PM Russ Whaley <whaley.r...@gmail.com> wrote:
>>>
>>> Dario,
>>> Thanks for the reply!
>>>
>>> When I closed my image - after running that huge query and leaving it in an
>>> inspector... my image grew to 1.3GB, lol.
>>>
>>> When I closed the inspector, and all the class browsers, did the garbage
>>> collection, etc., it dropped back to 384MB. Still huge, and all my Class
>>> instances are still there. I'm getting ready to also drop my Playground -
>>> after I copy all the code snippets out and see if that has any impact. I'm
>>> also going to try a fresh image and see if there is the same growth pattern
>>> as here.
>>>
>>> Perhaps I'm doing something wrong with the way I'm creating and storing my
>>> object instances - which is generally Class new, fill out some attributes,
>>> then add it to a collection or Dictionary.
>>>
>>> All my Object tests create sample data (objects) - over and over as well.
>>>
>>>
>>> On Tue, Mar 31, 2020 at 12:20 PM dario.trussardi65
>>> <dario.trussard...@gmail.com> wrote:
>>>>
>>>> Ciao,
>>>>
>>>>
>>>>> My image size keeps growing and growing. I've been scouring Google and
>>>>> mailing lists, trying to find a solution.
>>>>
>>>> i have the same problem with a Pharo 7 image.
>>>>
>>>> Maybe it has nothing to do.
>>>>
>>>> But after close all the class browser windows the image save return
>>>> to a " valid " size.
>>>>
>>>> Dario
>>>
>>>
>>>
>>> --
>>> Russ Whaley
>>> whaley.r...@gmail.com
>>
>>
>>
>> --
>> Russ Whaley
>> whaley.r...@gmail.com
>> <Class instances tests.pdf>
>>
>>
>> --
>> -----------------------------------------------------------------------
>> Objektfabrik Joachim Tuchel mailto:jtuc...@objektfabrik.de
>> Fliederweg 1 http://www.objektfabrik.de
>> D-71640 Ludwigsburg http://joachimtuchel.wordpress.com
>> Telefon: +49 7141 56 10 86 0 Fax: +49 7141 56 10 86 1
>>
>>
>>
>>
>> --
>> -----------------------------------------------------------------------
>> Objektfabrik Joachim Tuchel mailto:jtuc...@objektfabrik.de
>> Fliederweg 1 http://www.objektfabrik.de
>> D-71640 Ludwigsburg http://joachimtuchel.wordpress.com
>> Telefon: +49 7141 56 10 86 0 Fax: +49 7141 56 10 86 1
>>
>>
>