Slowness when loading code in Pharo 7?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
10 messages Options
Reply | Threaded
Open this post in threaded view
|

Slowness when loading code in Pharo 7?

Andrei Chis
Hi,

Are there any know slowdowns when loading code in Pharo 7? Usually on my machine (Mac - HighSierra) loading GToolkit in a Pharo 6.1 images takes around 9 minutes. In the latest Pharo 7 it takes 20 minutes. On two other newer laptops running Mac results are similar (15 minutes on Pharo 7 64it, and 7 minutes on Pharo 6.1 64bit). 

We have the impression that most of the times, the regression happens because of reading sources file. And the sources files are read because of checking Epicea method changes. We have not done a deep research on it, just whenever we do CMD+. it stops in that stage.

Cheers,
Andrei
Reply | Threaded
Open this post in threaded view
|

Re: Slowness when loading code in Pharo 7?

Sven Van Caekenberghe-2


> On 2 Oct 2018, at 16:17, Andrei Chis <[hidden email]> wrote:
>
> Hi,
>
> Are there any know slowdowns when loading code in Pharo 7? Usually on my machine (Mac - HighSierra) loading GToolkit in a Pharo 6.1 images takes around 9 minutes. In the latest Pharo 7 it takes 20 minutes. On two other newer laptops running Mac results are similar (15 minutes on Pharo 7 64it, and 7 minutes on Pharo 6.1 64bit).
>
> We have the impression that most of the times, the regression happens because of reading sources file. And the sources files are read because of checking Epicea method changes. We have not done a deep research on it, just whenever we do CMD+. it stops in that stage.
>
> Cheers,
> Andrei

I believe that actually loading source code from somewhere, compiling and installing it are not that slow, it is everything that happens around that, source code and change logging, tool notification, etc, ..

For accepting one method change, that is all good, but not when loading massive amounts of code.

We had discussions about this before, I think this is a really important issue.

Sven
Reply | Threaded
Open this post in threaded view
|

Re: Slowness when loading code in Pharo 7?

tinchodias
In reply to this post by Andrei Chis
Hi Andrei. You can evaluate "EpMonitor current disable" before loading
to compare times.
El mar., 2 de oct. de 2018 a la(s) 11:18, Andrei Chis
([hidden email]) escribió:
>
> Hi,
>
> Are there any know slowdowns when loading code in Pharo 7? Usually on my machine (Mac - HighSierra) loading GToolkit in a Pharo 6.1 images takes around 9 minutes. In the latest Pharo 7 it takes 20 minutes. On two other newer laptops running Mac results are similar (15 minutes on Pharo 7 64it, and 7 minutes on Pharo 6.1 64bit).
>
> We have the impression that most of the times, the regression happens because of reading sources file. And the sources files are read because of checking Epicea method changes. We have not done a deep research on it, just whenever we do CMD+. it stops in that stage.
>
> Cheers,
> Andrei

Reply | Threaded
Open this post in threaded view
|

Re: Slowness when loading code in Pharo 7?

Pharo Smalltalk Developers mailing list
Hi Martin,

By disabling EpMonitor, the slowdown disappears.

EpMonitor current disable.
[ Metacello new
   baseline: 'GToolkit';
   repository: 'github://feenkcom/gtoolkit/src';
   load.
 ] timeToRun "0:00:08:03.504”


Cheers,
Juraj

> On Oct 2, 2018, at 18:14, Martin Dias <[hidden email]> wrote:
>
> Hi Andrei. You can evaluate "EpMonitor current disable" before loading
> to compare times.
> El mar., 2 de oct. de 2018 a la(s) 11:18, Andrei Chis
> ([hidden email]) escribió:
>>
>> Hi,
>>
>> Are there any know slowdowns when loading code in Pharo 7? Usually on my machine (Mac - HighSierra) loading GToolkit in a Pharo 6.1 images takes around 9 minutes. In the latest Pharo 7 it takes 20 minutes. On two other newer laptops running Mac results are similar (15 minutes on Pharo 7 64it, and 7 minutes on Pharo 6.1 64bit).
>>
>> We have the impression that most of the times, the regression happens because of reading sources file. And the sources files are read because of checking Epicea method changes. We have not done a deep research on it, just whenever we do CMD+. it stops in that stage.
>>
>> Cheers,
>> Andrei
>


Reply | Threaded
Open this post in threaded view
|

Re: Slowness when loading code in Pharo 7?

Pharo Smalltalk Developers mailing list
Hi!

I did the same measurement for Pharo 6.1. To summarize it I have those results: 

By executing: 

-=-=-=-
EpMonitor current disable.
[ Metacello new
  baseline: 'GToolkit';
  repository: '<a href="github://feenkcom/gtoolkit/src" class="">github://feenkcom/gtoolkit/src';
  load.
] timeToRun
-=-=-=-

Pharo 6.1 64bit macOS: 6 minutes
Pharo 7.0 64bit macOS: 8 minutes

With EpMonitor current enabled it is: 

Pharo 6.1 64bit macOS: 7 minutes
Pharo 7.0 64bit macOS: 15 minutes


Cheers,
Juraj

On Oct 2, 2018, at 23:31, Juraj Kubelka via Pharo-dev <[hidden email]> wrote:


From: Juraj Kubelka <[hidden email]>
Subject: Re: [Pharo-dev] Slowness when loading code in Pharo 7?
Date: October 2, 2018 at 23:31:59 GMT-3
To: Pharo Development List <[hidden email]>


Hi Martin,

By disabling EpMonitor, the slowdown disappears.

EpMonitor current disable.
[ Metacello new
  baseline: 'GToolkit';
  repository: '<a href="github://feenkcom/gtoolkit/src" class="">github://feenkcom/gtoolkit/src';
  load.
] timeToRun "0:00:08:03.504”


Cheers,
Juraj

On Oct 2, 2018, at 18:14, Martin Dias <[hidden email]> wrote:

Hi Andrei. You can evaluate "EpMonitor current disable" before loading
to compare times.
El mar., 2 de oct. de 2018 a la(s) 11:18, Andrei Chis
([hidden email]) escribió:

Hi,

Are there any know slowdowns when loading code in Pharo 7? Usually on my machine (Mac - HighSierra) loading GToolkit in a Pharo 6.1 images takes around 9 minutes. In the latest Pharo 7 it takes 20 minutes. On two other newer laptops running Mac results are similar (15 minutes on Pharo 7 64it, and 7 minutes on Pharo 6.1 64bit).

We have the impression that most of the times, the regression happens because of reading sources file. And the sources files are read because of checking Epicea method changes. We have not done a deep research on it, just whenever we do CMD+. it stops in that stage.

Cheers,
Andrei






Reply | Threaded
Open this post in threaded view
|

Re: Slowness when loading code in Pharo 7?

tinchodias
In reply to this post by Pharo Smalltalk Developers mailing list
On Tue, 2018-10-02 at 23:31 -0300, Juraj Kubelka via Pharo-dev wrote:
>

I can profile it to see if there is something wrong, or it's just that
a lot of source code from GT and dependencies is written to disk and
then the only thing can do is disable change recording (and maybe then
re-enabling it after load).

(but I have linux)

Reply | Threaded
Open this post in threaded view
|

Re: Slowness when loading code in Pharo 7?

Peter Uhnak
In reply to this post by Pharo Smalltalk Developers mailing list


On Wed, Oct 3, 2018 at 7:31 PM Juraj Kubelka via Pharo-dev <[hidden email]> wrote:
Hi!

I did the same measurement for Pharo 6.1. To summarize it I have those results: 

By executing: 

-=-=-=-
EpMonitor current disable.
[ Metacello new
  baseline: 'GToolkit';
  repository: 'github://feenkcom/gtoolkit/src';
  load.
] timeToRun
-=-=-=-

Pharo 6.1 64bit macOS: 6 minutes
Pharo 7.0 64bit macOS: 8 minutes

With EpMonitor current enabled it is: 

Pharo 6.1 64bit macOS: 7 minutes
Pharo 7.0 64bit macOS: 15 minutes

So nice... I was just trying to install GToolkit in P6.1 on Windows (but with updated Iceberg)... it took over 1.5 hours (SmaCC was probably 30 minutes by itself), and then the image crashed... really looking forward to pre-made images :)

Peter
Reply | Threaded
Open this post in threaded view
|

Re: Slowness when loading code in Pharo 7?

tinchodias
On Wed, 2018-10-03 at 20:08 +0200, Peter Uhnak wrote:

>
>
> On Wed, Oct 3, 2018 at 7:31 PM Juraj Kubelka via Pharo-dev <pharo-dev
> @lists.pharo.org> wrote:
> > Hi!
> >
> > I did the same measurement for Pharo 6.1. To summarize it I have
> > those results: 
> >
> > By executing: 
> >
> > -=-=-=-
> > EpMonitor current disable.
> > [ Metacello new
> >   baseline: 'GToolkit';
> >   repository: 'github://feenkcom/gtoolkit/src';
> >   load.
> > ] timeToRun
> > -=-=-=-
> >
> > Pharo 6.1 64bit macOS: 6 minutes
> > Pharo 7.0 64bit macOS: 8 minutes
> >
> > With EpMonitor current enabled it is: 
> >
> > Pharo 6.1 64bit macOS: 7 minutes
> > Pharo 7.0 64bit macOS: 15 minutes
> >
>
> So nice... I was just trying to install GToolkit in P6.1 on Windows
> (but with updated Iceberg)... it took over 1.5 hours (SmaCC was
> probably 30 minutes by itself), and then the image crashed... really
> looking forward to pre-made images :)
>
> Peter
I ran the attached script on my debian 64 bits (disk: slow HDD w/ext4,
cpu: i5 ram: 12gb). Here, the slowdown from 61 to 70 is not as evident
as in your cases. 

It's only me? It can help if others can run the script and report your
results in other computers and OSs.

Two output examples:
---

pharo 61
* disabled:
0:00:07:30.783
* enabled:
0:00:08:27.931

pharo 70
* disabled:
0:00:08:24.403
* enabled:
0:00:09:12.858

---

pharo 61
* disabled:
0:00:08:16.036
* enabled:
0:00:09:21.368

pharo 70
* disabled:
0:00:08:06.57
* enabled:
0:00:10:05.194

---

pharo 61
* disabled:
0:00:07:39.538
* enabled:
0:00:08:33.778

pharo 70
* disabled:
0:00:07:23.528
* enabled:
0:00:09:11.453

---
Note: the script removes pharo-local/ before loading the code to
download again everything (and I don't have configured a central repo
in personal settings or something like that). It should be more fair to
compare to have locally cached as much as possible. I tried once and it
was reducing a couple of minutes, but the conclusion was the same.

Additionally: In both 61 and 70, I browsed the resulting ombu file
(>110 mb), it was not thaat bad...
~5 seconds when I clicked on the file, and then almost no delay on
scroll and when clicking on a particular change.

But: The problem was when I clicked on a filter and it started to parse
each change... I waited like 10 minutes and then closed it. No visual
feedback, and looks too inefficient.


Martín

timeToRun.sh (1K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Slowness when loading code in Pharo 7?

Andrei Chis
Hi,

In my case I get:

pharo 61
* disabled:
0:00:09:39.43
* enabled:
0:00:10:25.173"

pharo 70
* disabled:
0:00:12:44.701
* enabled:
0:00:21:21.285

Each time in a clean folder with a new image. All tests are with the current stable vm on High Sierra.

Cheers,
Andrei

On Thu, Oct 4, 2018 at 8:23 AM <[hidden email]> wrote:
On Wed, 2018-10-03 at 20:08 +0200, Peter Uhnak wrote:
>
>
> On Wed, Oct 3, 2018 at 7:31 PM Juraj Kubelka via Pharo-dev <pharo-dev
> @lists.pharo.org> wrote:
> > Hi!
> >
> > I did the same measurement for Pharo 6.1. To summarize it I have
> > those results: 
> >
> > By executing: 
> >
> > -=-=-=-
> > EpMonitor current disable.
> > [ Metacello new
> >   baseline: 'GToolkit';
> >   repository: 'github://feenkcom/gtoolkit/src';
> >   load.
> > ] timeToRun
> > -=-=-=-
> >
> > Pharo 6.1 64bit macOS: 6 minutes
> > Pharo 7.0 64bit macOS: 8 minutes
> >
> > With EpMonitor current enabled it is: 
> >
> > Pharo 6.1 64bit macOS: 7 minutes
> > Pharo 7.0 64bit macOS: 15 minutes
> >
>
> So nice... I was just trying to install GToolkit in P6.1 on Windows
> (but with updated Iceberg)... it took over 1.5 hours (SmaCC was
> probably 30 minutes by itself), and then the image crashed... really
> looking forward to pre-made images :)
>
> Peter

I ran the attached script on my debian 64 bits (disk: slow HDD w/ext4,
cpu: i5 ram: 12gb). Here, the slowdown from 61 to 70 is not as evident
as in your cases. 

It's only me? It can help if others can run the script and report your
results in other computers and OSs.

Two output examples:
---

pharo 61
* disabled:
0:00:07:30.783
* enabled:
0:00:08:27.931

pharo 70
* disabled:
0:00:08:24.403
* enabled:
0:00:09:12.858

---

pharo 61
* disabled:
0:00:08:16.036
* enabled:
0:00:09:21.368

pharo 70
* disabled:
0:00:08:06.57
* enabled:
0:00:10:05.194

---

pharo 61
* disabled:
0:00:07:39.538
* enabled:
0:00:08:33.778

pharo 70
* disabled:
0:00:07:23.528
* enabled:
0:00:09:11.453

---
Note: the script removes pharo-local/ before loading the code to
download again everything (and I don't have configured a central repo
in personal settings or something like that). It should be more fair to
compare to have locally cached as much as possible. I tried once and it
was reducing a couple of minutes, but the conclusion was the same.

Additionally: In both 61 and 70, I browsed the resulting ombu file
(>110 mb), it was not thaat bad...
~5 seconds when I clicked on the file, and then almost no delay on
scroll and when clicking on a particular change.

But: The problem was when I clicked on a filter and it started to parse
each change... I waited like 10 minutes and then closed it. No visual
feedback, and looks too inefficient.


Martín
Reply | Threaded
Open this post in threaded view
|

Re: Slowness when loading code in Pharo 7?

Pharo Smalltalk Developers mailing list
In reply to this post by Pharo Smalltalk Developers mailing list
Shouldn’t the Metacello>>load be updated to disable EpMonitor?
It seems to be an easy fix no?

Alexandre

> On Oct 2, 2018, at 11:31 PM, Juraj Kubelka via Pharo-dev <[hidden email]> wrote:
>
>
> From: Juraj Kubelka <[hidden email]>
> Subject: Re: [Pharo-dev] Slowness when loading code in Pharo 7?
> Date: October 2, 2018 at 11:31:59 PM GMT-3
> To: Pharo Development List <[hidden email]>
>
>
> Hi Martin,
>
> By disabling EpMonitor, the slowdown disappears.
>
> EpMonitor current disable.
> [ Metacello new
>   baseline: 'GToolkit';
>   repository: 'github://feenkcom/gtoolkit/src';
>   load.
> ] timeToRun "0:00:08:03.504”
>
>
> Cheers,
> Juraj
>
>> On Oct 2, 2018, at 18:14, Martin Dias <[hidden email]> wrote:
>>
>> Hi Andrei. You can evaluate "EpMonitor current disable" before loading
>> to compare times.
>> El mar., 2 de oct. de 2018 a la(s) 11:18, Andrei Chis
>> ([hidden email]) escribió:
>>>
>>> Hi,
>>>
>>> Are there any know slowdowns when loading code in Pharo 7? Usually on my machine (Mac - HighSierra) loading GToolkit in a Pharo 6.1 images takes around 9 minutes. In the latest Pharo 7 it takes 20 minutes. On two other newer laptops running Mac results are similar (15 minutes on Pharo 7 64it, and 7 minutes on Pharo 6.1 64bit).
>>>
>>> We have the impression that most of the times, the regression happens because of reading sources file. And the sources files are read because of checking Epicea method changes. We have not done a deep research on it, just whenever we do CMD+. it stops in that stage.
>>>
>>> Cheers,
>>> Andrei
>>
>
>
>
>