2010/10/19 Levente Uzonyi <[email protected]>:
> On Mon, 18 Oct 2010, Nicolas Cellier wrote:
>
>> 2010/10/18 Igor Stasenko <[email protected]>:
>>>
>>> On 18 October 2010 23:18, Nicolas Cellier
>>> <[email protected]> wrote:
>>>>
>>>> 2010/10/17 Levente Uzonyi <[email protected]>:
>>>>>
>>>>> On Sat, 16 Oct 2010, Bart Veenstra wrote:
>>>>>
>>>>>> Hi list,
>>>>>>
>>>>>> I have been working with Pharo for almost a month now, and I suspect
>>>>>> that the performance is degrading fast. UI tasks takes several seconds
>>>>>> to react to my keyboard.
>>>>>
>>>>> That kind of sluggishness is probably related to finalization/gc.
>>>>> Please
>>>>> send us the result of the following expression:
>>>>>
>>>>> (WeakArray classPool at: #FinalizationDependents)
>>>>>        select: [ :each | each notNil ]
>>>>>        thenCollect: [ :each | each class -> each size ]
>>>>>
>>>>
>>>> While updating pharo 1.2, after an EndOfCentralDirectory error, I got
>>>> a very unresponsive image...
>>>>
>>>> ((WeakArray classPool at: #FinalizationDependents) as: Array)
>>>>       select: [ :each | each notNil ]
>>>>       thenCollect: [ :each | each class -> each size]
>>>> ->
>>>> {(WeakIdentityKeyDictionary->22370).
>>>
>>> This is an MC cache. And major reason of image slowdown.
>>>
>>
>> Levente did this simplification in trunk:
>>
>> cachedDefinitions
>>        ^definitions ifNil: [ definitions := WeakIdentityKeyDictionary new
>> ]
>>
>> It would be worth a try in Pharo.
>
> IIRC Pharo's WeakKeyDictionary (and subclasses) don't work properly if
> they're not registered to the finalization process. So this won't work as
> long as that's not fixed.
>

Huh? Can you provide a code to show it? Test case please?


>
> Levente
>
>>
>> Nicolas
>>
>>>> (WeakRegistry->0).
>>>> (WeakRegistry->0). (WeakRegistry->0). (WeakRegistry->2)}
>>>>
>>>> I tried to inspect it 5 minutes ago, but hey, answer in another email...
>>>> Ah, OK, cmd+shift+. just worked. I had to interrupt
>>>> #finalizationProcess itself finally...
>>>> Oh inspect is sorting the keys... unusable.
>>>> So what's in the array ? Things like
>>>>
>>>> (ScriptLoader>>#update12125 "a CompiledMethod(0)")->a
>>>> MCMethodDefinition(ScriptLoader>>update12125)
>>>> (PragmaCollector>>#release "a CompiledMethod(964689920)")->a
>>>> MCMethodDefinition(PragmaCollector>>release)
>>>> (Float>>#arcSin "a CompiledMethod(358088704)")->a
>>>> MCMethodDefinition(Float>>arcSin)
>>>>
>>>> I don't understand yet, but I begin to gather clues why updating pharo
>>>> goes so badly...
>>>>
>>>> Nicolas
>>>>
>>>> _______________________________________________
>>>> Pharo-project mailing list
>>>> [email protected]
>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>>>
>>>
>>>
>>>
>>> --
>>> Best regards,
>>> Igor Stasenko AKA sig.
>>>
>>> _______________________________________________
>>> Pharo-project mailing list
>>> [email protected]
>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>> _______________________________________________
>> Pharo-project mailing list
>> [email protected]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
> _______________________________________________
> Pharo-project mailing list
> [email protected]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>



-- 
Best regards,
Igor Stasenko AKA sig.

_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to