[Pharo-project] Memory usage

David T. Lewis lewis at mail.msen.com
Tue Jul 24 08:04:13 EDT 2012

On Tue, Jul 24, 2012 at 09:27:49AM +0200, jannik.laval wrote:
> Hi Dave,
> Should I load the SystemTracer available on SqueakSource ? The last version is from 2011, and seems old, no ?
> When I try it, it calls some methods that do not exist in Pharo.
> Do you have more information on how to use it ?

Hi Jannik,

The system tracer is explained in the class comment of class SystemTracer.
The comment was written by Dan Ingalls (I think), and gives credit to Ted
Kaehler as the inventor of the original. Class SystemTracer2 has additional
documentation including how to run the trace. SystemTracer2 is a newer
version that you will actually be using, so you can think of SystemTracer
as the original reference implementation, while SystemTracer2 and its
subclasses are variations on the original. SystemTracer64 is the subclass
that implements conversion logic for copying 32-bit objects into the
experimental 64-bit object memory format. This object format is described
in the SystemTracer64 class comment, and more information is available at

A system tracer will first put your image into a "quiet" mode, then copy
and convert the running object memory to a new image file, and then wake up
and return to normal. This is similar to saving your image and restarting
from a disk file, except that the system tracer will trace your object
memory to a new format rather than saving it unchanged.

 To trace your running image to a new 64-bit image file, you would do this:

	SystemTracer64 writeImage: 'new64bitImage.image'

The last update I did to SystemTracer (SystemTracing-dtl.23) works with
closure-enabled images, including Pharo at one time. I have a 64-bit
Pharo 1.4 image that I made about a year and a half ago. I don't know
what has changed in Pharo since then, so probably some updates will be
needed, or possibly a Pharo-specific version. I know that others on the
Pharo list have worked on this, so hopefully someone else can give you
some pointers about that.


More information about the Pharo-dev mailing list