[modules] Refactoring and shrinking the image, was Re: [Squeakfoundation]What I would like to promote

Henrik Gedenryd squeakfoundation@lists.squeakfoundation.org
Thu, 31 Jan 2002 12:31:37 +0000


> This message is in MIME format. Since your mail reader does not understand
this format, some or all of this message may not be legible.

--MS_Mac_OE_3095325097_2750555_MIME_Part
Content-type: text/plain; charset="US-ASCII"
Content-transfer-encoding: 7bit

Moving this to the main list...

Dan Ingalls wrote:

> ducasse <ducasse@iam.unibe.ch> wrote...
>> I think that Celeste is "well" separated from the core so this could be
>> interesting to try.
> 
> Hi Stef -
> 
> I've been reflecting more on this since responding to your message.  I
> completely defer to you and Henrik on which way to go, but I see a choice
> here:
> 
> Either we...
> Find various small things that are pretty modular and do them first
> 
> Or we...
> Take various big chunks that are pretty modular and do them first.
> 

I made some experiments with this, and as it turns out, the easiest part is
also the largest and most expendable one: VMConstruction. Storing it gives
you 2.8M of code on disk, and unloading it gives a 1.4M smaller image. Doing
the same for Balloon3D gives 1.3M of source and a 0.5M smaller image.

I will post instructions for doing this, along with a couple of fixes I came
across while doing it.

> I just have the feeling that it might not be much harder to draw isolation
> lines around the big chunks than it is around the little ones, and the payoff
> might be higher, in that it might *soon* be possible for mere mortals to
> perform their own versions of majorShrink, and have it really work.

Two points: 

1. My estimates were that unloading modules will leave a much larger image
than I had hoped for. The total source size is now about 17M (see gif);
VMConstruction and Balloon above suggest about a 1/2 ratio or less for image
size, which means 8-9M out of the current 16M. Ie. there are other things in
the image that unloading modules of code probably won't help with.

I've not been able to guess what this is; somewhere between 2.8 and 3.0 IIRC
the image grew much more than the added code can account for, and when I
removed the Welcome projects that just gave slightly over 1M back, clearing
the flaps also gave just about 100k.

One possible cause is that I haven't been able to release everything, thus
giving lower savings than there should be. This would give too low
estimates.

2. VMConstruction and Balloon3D are probably the easiest parts to separate.
However, that didn't mean that making either of them unload properly was
easy, and it still isn't "well" done--this is what made me realize what an
amount of work will be involved in this.

This is about as much as I know.

Henrik


--MS_Mac_OE_3095325097_2750555_MIME_Part
Content-type: image/gif; name="src2.gif";
 x-mac-creator="63326766";
 x-mac-type="47494666"
Content-disposition: attachment
Content-transfer-encoding: base64

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

--MS_Mac_OE_3095325097_2750555_MIME_Part--