New Magma 1.0 (was: Magma on 3.7 report)

Chris Muller chris at funkyobjects.org
Fri Mar 24 05:57:31 UTC 2006


Ohhh K !!  Bert, I think you saved the day.  Your shocking MessageTally has revealed that Magma has sufferred a horrible performance regression; it is back to using WeakValueDictionary instead of my own faster "MaWeakValueDictionary".  Monticello shows I took it out last September 21st, 2005.  The comment indicates I did this intentionally:
 
     "- No longer using MaWeakIdentityKeyDictionary and MaWeakValueDictionary.  These perform immensely better with removeKey:, but am now avoiding removeKey altogether."
 
 I stupidly failed to realize #removeKey: wasn't the only issue with WeakValueDictionarys, its #at:put: is a serious problem as well.  This is why you are experiencing this major performance problem.  I'm rather wringing my hands suddenly realizing, all this time, everyone who has a few hundred-thousand locally cached objects has (probably) been experiencing horrible performance.  :(  I'm surprised Bert is the first to notice and mention since that time.
 
 So I have restored the use of MaWeakValueDictionary, verified with the test cases, and reposted to SqueakSource.  **Everyone should update to this latest version**.
 
 It appears WeakIdentityKeyDictionary has been fixed, so it was right to stop using MaWeakIdentityKeyDictionary.  
 
 Bert, thanks for your patience and great help in exposing the problem.  Would you please try your test again? 
 
 MagmaServerLoader-cmm.14.mcz on SqueakSource, it should be about 4-times faster.
 
   - Chris
 




More information about the Magma mailing list