> 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! >