[Magma] test result

Andreas Raab Andreas.Raab at gmx.de
Mon Aug 5 20:05:07 UTC 2002


Chris,

> To sum it up, it was 5 hours for Squeak to do 2001 
> removeKey's followed by 2001 at:put:'s.  Is this related
> to the 12-bit hashing issue you brought up earlier??

This may be but I find it unlikely. Running a quick benchmark of the
form:

dict := IdentityDictionary new.
max := 2000. "operations"
objList := (1 to: 100000) collect:[:i| Object new].
shuffled := objList shuffled. "so we don't replace them in order"
objList do:[:o| dict at: o put: nil].

toReplace := [
	1 to: max do:[:i|
		key := shuffled at: i.
		dict removeKey: key.
		key := Object new.
		dict at: key put: nil.
	].
] timeToRun.

does the replacement within 275 msecs. Of course I don't know if that
models your case well enough but running a message tally on the
operation will definitely tell you where it's spending the time.

Cheers,
  - Andreas




More information about the Squeak-dev mailing list