[Vm-dev] Garbage collector issue

Pavel Krivanek pavel.krivanek at gmail.com
Thu Jan 26 13:58:49 UTC 2017


Strange, in Pharo 3 it behaves the same way. So probably not directly Spur
related.

-- Pavel

2017-01-26 14:52 GMT+01:00 Clément Bera <bera.clement at gmail.com>:

>
> Is it the same behavior in Pharo 3 ?
>
> Just wondering if this is a Spur issue or if it is non related to Spur.
>
> On Thu, Jan 26, 2017 at 2:38 PM, Pavel Krivanek <pavel.krivanek at gmail.com>
> wrote:
>
>>
>> Hi,
>>
>> in Pharo and in Squeak, if you try to print:
>>
>> Point allInstances size.
>>
>> several times, you will get fastly growing number of Point instances in
>> most cases. But when you do:
>>
>> Smalltalk garbageCollect. Point allInstances size.
>>
>> The number of instances is quite stable.
>>
>> I realized that about every 5 milliseconds two new Point instances are
>> created and not collected in reasonable time. I tried to find what points
>> to them and I realized that nothing. That two instances contain display
>> size so it was easy to find the place where these points are created. In
>> Pharo it is in
>>
>> MorphicUIManager>>#checkForNewDisplaySize
>>
>> "Check whether the screen size has changed and if so take appropriate
>> actions"
>>
>> Display extent = DisplayScreen actualScreenSize ifTrue: [^ Display].
>> DisplayScreen startUp.
>> World restoreMorphicDisplay.
>>
>> As you can see in the code, the two point instances are only very
>> temporary objects. And with some experiments I realized that that behavior
>> is not Point specific (eg. some problem with the @ primitive). Because if
>> you replace the code of the method with only Object basicNew, the growth of
>> Object instances is similar. See the attached script.
>>
>> pharo-ui Pharo st script2.st
>>
>> Cheers,
>> -- Pavel
>>
>>
>>
>>
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20170126/ee4f4858/attachment-0001.html>


More information about the Vm-dev mailing list