igor can you open a bug entry so that we do not forget it.
tx
Stef
On Apr 21, 2013, at 5:49 PM, Igor Stasenko <siguctua@gmail.com> wrote:
> On 20 April 2013 22:56, Chris <cpmbailey@btinternet.com> wrote:
>> I've recently upgraded a project to Pharo 2 which went relatively smoothly
>> but thought I'd share my experience with loading times
>>
>> In Pharo 1.4, it used to take about 5-6 minutes to build everything from a
>> base image but I noticed that if I ran the package loads inside a
>> SystemChangeNotifier uniqueInstance doSilently: then the load time went down
>> to like 2 minutes without any other side effects.
>>
>> In Pharo 2, it was taking a lot longer so I ran it through the equivalent
>> SystemAnnouncer uniqueInstance suspendAllWhile: which did the job in terms
>> of speed but all of the classes ended up unpackaged. After a little bit of
>> digging I eventually found that by running MCWorkingCopy
>> unregisterForNotifications before the package load, it came back to a
>> sensible load time and everything seems to work again.
>
> SystemAnnouncer suspension is buggy.
>
> announce: anAnnouncement
> � � � self isSuspended
> � � � � � � � ifFalse: [
> � � � � � � � � � � � self private announce: anAnnouncement.
> � � � � � � � � � � � super announce: anAnnouncement ]
> should be:
>
> announce: anAnnouncement
> � � � self private announce: anAnnouncement.
> � � � self isSuspended
> � � � � � � � ifFalse: [
> � � � � � � � � � � � super announce: anAnnouncement ]
>
>
>>
>> My question is can this practice become part of a configuration load? I
>> tried loading Iliad from the package cache just as an example and if you do
>> a ConfigurationOfIliad load it takes 310 seconds, whereas MCWorkingCopy
>> unregisterForNotifications. ConfigurationOfIliad load. MCWorkingCopy
>> registerForNotifications. only takes 42 seconds. The main problem seems to
>> be MCPackageManager>>#methodModified which sets the package modified state
>> is taking about 60m/s to run each time because it is initializing an
>> RPackage for every package in the system. Is there any way this can be
>> cached better?
>>
> yes the code there needs review.
>
>> Cheers
>> Chris
>>
>>
>
>
>
> --
> Best regards,
> Igor Stasenko.
>