[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

dependency info




For some strange reason I've never liked the dependency information
that Self has to keep on each compiled method. I would guess that
the overhead of keeping all those lists up to date is not very
high and the "spy" shows that the memory used is not too exagerated,
so I can't give a good reason for this dislike.

If we didn't have this information at all, then it would still be
possible to make Self work by flushing the whole compiled code cache
after any programming primitive, right? The result would not be
very good - pauses of over 15 seconds could be expected on a
Sparc 2 ( see Urs' PhD thesis on page 111, item 13 in the table ).

How about a hybrid solution ( it seems we always go for these ):
if we could devide the objects into a few large groups ( less than
32, for example ) we could use a single word in each compiled
method to tag it as depending on objects of one or more groups.
When an object is changed, all methods depending on its group
would be flushed. Object groups are *much* less precise than
individual slots, but the difference in results might not be as
great as it would seem at first.

Any thoughts on this?
-- Jecel