[gclist] object identity & copying collection
Wed, 10 Dec 1997 10:03:34 -0600
At 10:37 AM 12/10/97 -0500, you wrote:
>At 09:20 AM 12/10/97 -0600, Charles Fiterman wrote:
>>The problem is in the object identity not the hash function.
>>This suggests deep problems with copying collectors
>>and object orientation.
>Why? Identity is simply not-being-equal-to anything
>else. Copying collectors preserve that relationship
>among all accessible objects. If you are referring to
>external identity, copying collectors are no worse
>off than existing collectors, because non-moved objects
>will also require unique IDs; the address allocated in
>a given machine is not unique in time, and publishing
>that address (while still allowing collection of the
>object) can result in "mistaken identity" in the future.
Here is the deep problem.
People like copying collectors because they are efficient.
Having a single identity source is efficient if you have
a low volume of movable objects. You do have to lock that
source. But with moving collectors there is a high volume
of movable objects.
There is a bad tradition in collector technology of
improving the efficiency of the collector by assigning
its work elsewhere. If the collector eats half your time
and you find a way to move half the collector's work
to the mutator the collector goes from taking 50% of
application time to 25% of application and you look
like a genus while doing absolutly nothing of value.
A moving collector assigns extra work to hash functions.
There has to be extra work when an object can legitamately
be moved across the web but those objects are the exception.
Similarly there has to be extra work if a language allows
an object to create a new version of itself because the
new version will be elsewhere but have the old identity.
Charles Fiterman Geodesic Systems
414 North Orleans Suite 410 Phone 312 832 1221 x223
Chicago IL 60610-4418 FAX 312 832 1230
A young man saw a product advertised in a magazine that said
"Guaranteed 100% effective against bugs when properly used."
He sent away and got two blocks of wood with the instructions
"Place bug on block A, strike sharply with block B." Debuggers
are like that, and you can get stung while using them. Great
Circle tries to be something better than that.