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
|