cleaning up Pharo images

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

cleaning up Pharo images

Peter Uhnak
Hi,

is there a way to minimize/clean up Pharo image/changes files after an application has been installed into it?

Currently I have the base image sitting at 65MB and changes at 36MB, which is massive considering only source code was added.

I've tried running 'Smalltalk cleanUp: true', which I cannot run from command line because it asks a question… can this be circumvented?

Running it manually however has driven the image size down to 46MB, not changing the .changes file however.

Are there other ways to make the image smaller?
Do I need such massive changes file? Can't I just empty it completely?

Thanks,
Peter
Reply | Threaded
Open this post in threaded view
|

Re: cleaning up Pharo images

Marcus Denker-4
Hi,

There is right now a bug that images *never* shrink.

        https://pharo.fogbugz.com/f/cases/17240/Spur-When-saving-an-image-it-never-shrinks

For Pharo4:

> On 18 Feb 2016, at 11:20, Peter Uhnák <[hidden email]> wrote:
>
> Hi,
>
> is there a way to minimize/clean up Pharo image/changes files after an application has been installed into it?
>
> Currently I have the base image sitting at 65MB and changes at 36MB, which is massive considering only source code was added.
>
> I've tried running 'Smalltalk cleanUp: true', which I cannot run from command line because it asks a question… can this be circumvented?
>
For cleanup, there is

        Smalltalk cleanUp: true except: #() confirming: false.

to not get asked questions.

There is class ImageCleaner that does some more things (most have been move to #cleanUp methods already, though):

        ImageCleaner  cleanUpForRelease

This is called e.g. after each build on the CI server. It

Yes, via the command line:

./pharo Pharo.image clean --release


ImageCleaner  cleanUpForProduction

unloads all tests, examples and documentation. This leads to a much smaller image, but as we do not regression test it, it might
be broken.

> Running it manually however has driven the image size down to 46MB, not changing the .changes file however.
>
> Are there other ways to make the image smaller?
> Do I need such massive changes file? Can't I just empty it completely?
>

In theory you can use

        PharoChangesCondenser condense

but in practice this is run once per year and it never working when called...

We need to get rid of the .changes and .sources mechanism. We need to reach a point where “the artefact on the CI server is the artefact of release”.
Mechanism of the kind “and then we can this method one day before release” is not a good idea.

        Marcus