VM improvement: speeding up failing calls of functions in missing modules

Raab, Andreas Andreas.Raab at disney.com
Mon Jan 31 05:35:41 UTC 2000


> I see a problem here:
> 
> In Interpreter>>isInMissingModules: there I have removed the
> string/symbol compare for a merely oop compare: So different in oops,
> but equal in bytes strings would fill up the cache fast, if many
> different functions from the same module - stored as strings with
> different oops - are called.
> This could lead to a bug: there is no caching anymore, if some (>
> cachesize) different functions each stemming from another module are
> called in sequence!

Well, as I said there are only symbols used here. Since this is a cache it
ought to be fast and I don't consider cache misses for degenerate cases to
be bugs - not if it means much more expensive comparisons for the common
case.

> But in either case it has to be cleared during startup time.
> What do you think of is a good time?
> The cache has to be cleared early before _every_ possible module call.

SystemDictionary>>clearExternalObjects (or its caller) seems to me the right
place.

  A.





More information about the Squeak-dev mailing list