Young ImageSegments

ajh18 at cornell.edu ajh18 at cornell.edu
Wed Jan 31 09:18:47 UTC 2001


I'm writing an experimental distributed computing package for Squeak. 
When I send a message to a remote object, I want to send all "free"
arguments along with it (free arguments are those that have no other
pointers to them).  Thankfully, ImageSegment extracts exactly what I
want, however, it scans the entire image, both tenured and young
objects, taking half a second or more.  This is great performance for
extracting whole Projects, but for my small and frequent Message objects
this is a problem.  Since my Message objects and its arguments are
usually young, I would like another primitive method that only scanned
young space and moved any pointers into tenured space into the
outPointers array.  Ted Kaehler is the author of
Interpreter>>primitiveStoreImageSegment.  To change it into a new
primitiveStoreYoungImageSegment, I think I only have to get rid of

	youngStart _ self startOfMemory.  "process all of memory"

and add

	and: [fieldOop >= youngStart]

to the internal pointer test

	((self longAt: fieldOop) bitAnd: MarkBit) = 0.


Can any GC/ImageSegment experts out there confirm this?  Do you think it
will be much faster?

Thanks,
Anthony Hannan

P.S. I will post my Distributed Squeak package to this list when it is
ready, hopefully in a month or two.





More information about the Squeak-dev mailing list