[Pharo-dev] Large difference in image size when loading configuration

Sven Van Caekenberghe sven at stfx.eu
Tue Nov 12 16:06:18 EST 2013


On 11 Nov 2013, at 16:03, Sven Van Caekenberghe <sven at stfx.eu> wrote:

> 
> On 11 Nov 2013, at 15:51, phil at highoctane.be wrote:
> 
>> Image size goes back to:
>> 
>> 29.068.612
>> 
>> Looks like all package contents are cached in the image…
> 
> But by a factor 3 ??

It seems that for each repository instance up to 512 (!) versions can be cached in memory (instance variable cache), including all their version info, full ancestry until the middle ages, and definitions, including source code and meta data, in the snapshot. This is really massive.

The package-cache already contains this data, non-parsed, I know.

Still, the in memory cache should be managed way better, using LRU or something like that.

>> Phil
>> 
>> 
>> 
>> On Mon, Nov 11, 2013 at 1:32 PM, Mariano Martinez Peck <marianopeck at gmail.com> wrote:
>> Phil, what happens if you evaluate (and save after) to the big image:
>> 
>> MCFileBasedRepository flushAllCaches.
>> 3 timesRepeat: [Smalltalk garbageCollect].
>> 
>> 
>> On Mon, Nov 11, 2013 at 8:30 AM, phil at highoctane.be <phil at highoctane.be> wrote:
>> [User.Techlab] → du -hs package-cache
>> 5.3M    package-cache
>> 
>> Phil
>> 
>> On Mon, Nov 11, 2013 at 11:41 AM, Sven Van Caekenberghe <sven at stfx.eu> wrote:
>> What is the total size of the package-cache, like du -hs ?
>> Could it be the same size of the difference in image size ?
>> That would mean that the contents of the packages themselves is cached in the image...
>> 
>> On 11 Nov 2013, at 10:39, phil at highoctane.be wrote:
>> 
>>> I am experiencing the following while loading my configuration.
>>> 
>>> REPO=http://www.smalltalkhub.com/mc/philippeback/HOWebStack/main
>>> ./pharo Pharo.image config $REPO ConfigurationOfHOWebStack --install=0.4
>>> 
>>> Everything loads fine.
>>> 
>>> But:
>>> 
>>> with a package-cache/ empty, the final image is: 44.452.060 with a changes file of: 10.831.877
>>> 
>>> with a primed package-cache (meaning, letting the mczs in place and starting with a fresh image), the final image is: 29.480.912 with a changes file of: 10.830.899
>>> 
>>> That's quite a huge difference.
>>> 
>>> I tried again to be sure (fresh image and empty package-cache, then fresh image only) and, weirdly enough, even if the difference in size was the same, the sizes themselves weren't.the same...
>>> 
>>> 44.446.152 - 10.830.899
>>> 29.986.284 - 10.831.543
>>> 
>>> Maybe that's due to a GC occurring differently between the two.
>>> 
>>> But this gives the impression that one cannot load a base image, apply a configuration, and end up with the same image twice. Weird.
>>> 
>>> Why is this difference so large in the first place ?
>>> 
>>> Phil
>>> 
>>> 
>>> 
>>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> -- 
>> Mariano
>> http://marianopeck.wordpress.com
>> 
> 





More information about the Pharo-dev mailing list