> On 28 Oct 2014, at 14:58, Esteban A. Maringolo <emaring...@gmail.com> wrote:
> 
> 2014-10-28 5:41 GMT-03:00 Sven Van Caekenberghe <s...@stfx.eu>:
>> Esteban,
>> 
>> The Reddit example's CI Job 
>> (https://ci.inria.fr/pharo-contribution/job/Reddit/) also loads Seaside and 
>> Glorp (two big packages) in Pharo 3 and it too results in a 110 Mb image and 
>> 142 Mb changes file. After condensing, that goes to 276 Mb !
> 
>> I would say something is wrong here ;-)
> 
> Either something is wrong, or we feature it and rename
> PharoChangesCondenser>>#condense to PharoChangesExpander>>#expand :)
> 
>> Note that condensing changes on newly loaded code should not make much 
>> difference (in essence, all multiple versions of methods are reduced to 1).
> 
>> I think we should create some issues out of this.
> 
> This is true, however I find a changes of 140 megs to be MASSIVE.

I totally agree, this is unacceptable. However, I did some tests, and the 
problem is with Glorp (or any of its sub packages). I tried building both my 
Reddit and HP35 examples from scratch in Pharo 3 on Linux.

$ ./pharo reddit.image config 
http://smalltalkhub.com/mc/SvenVanCaekenberghe/Reddit/main 
ConfigurationOfReddit --install=stable

$ ./pharo hp35.image config 
http://smalltalkhub.com/mc/SvenVanCaekenberghe/HP35/main ConfigurationOfHP35 
--install=stable --group=Web-UI

Both load Seaside and some other stuff, but only Reddit loads Glorp and 
PostgresV2.

I did a condense changes on the HP35 image, the one on the Reddit image ran out 
of physical memory (granted is was a small machine) !

Here are the resulting sizes:

$ ls -lah
total 337M
drwxr-xr-x  4 root root 4.0K Oct 28 15:09 .
drwx------ 12 root root 4.0K Oct 28 12:28 ..
-rw-r--r--  1 root root 5.8M Oct 28 13:17 hp35.changes
-rw-r--r--  1 root root 5.6M Oct 28 14:38 hp35-condense-test.changes
-rw-r--r--  1 root root 5.8M Oct 28 14:27 hp35-condense-test.changes.bak
-rw-r--r--  1 root root  29M Oct 28 14:38 hp35-condense-test.image
-rw-r--r--  1 root root  29M Oct 28 13:17 hp35.image
drwxr-xr-x  2 root root 4.0K Oct 28 13:12 package-cache
-rwxr-xr-x  1 root root  367 Oct 28 12:29 pharo
-rw-rw-r--  1 root root 265K Oct 24 14:42 Pharo.changes
-rw-rw-r--  1 root root  21M Oct 24 14:42 Pharo.image
-rwxr-xr-x  1 root root  354 Oct 28 12:29 pharo-ui
drwxr-xr-x  3 root root 4.0K Oct 28 12:29 pharo-vm
-rw-r--r--  1 root root 136M Oct 28 12:48 reddit.changes
-rw-r--r--  1 root root 105M Oct 28 12:48 reddit.image

Note how the HP35 image and changes sizes are totally acceptable/normal, while 
the Reddit one explodes, with the difference being Glorp.

But I have no idea what causes this.

There is no way Glorp can generate 100 Mb changes, when Seaside is OK with 6 Mb.

> I remember loading ~4000 classes in the order of 10^6 LOC in Dolphin, and
> changes never got half that size. Sizes were ~28/55MB image/changes.
> The same in VAST, any image beyond the 20MB was an alert of something
> being leaked.
> 
>> Hmm, we need more tests and data points, I will try on Linux command line 
>> later on.
> 
> I ran in it in Linux (Ubuntu) through the command line.
> 
> 
> Regards!
> 


Reply via email to