Morphic slowness (was Re: Does *anyone* use MVC?)

Scott A Crosby scrosby at cs.rice.edu
Sat Aug 3 09:23:26 UTC 2002


On Thu, 1 Aug 2002 15:44:37 -0700, Ned Konz <ned at bike-nomad.com> writes:


> 1.3 seconds is spent looking through IdentityDictionaries.
> Presumably this is looking for Morph properties and preferences.
> 

If any of these dictionaries are, say, >2000 in size, this could be
from the identitydictionary thing I was talking about about 9 months
ago. Given that (as below) 30% of the total time is spent there, I'd
bet you this is rearing its ugly head... *again*

> So what would you attack first?

I also posted a changeset that increased the granularity of
MessageTally. (Have it tally things more often and to display things
even if they have a couple of tally's.) I did this because functions
listed in the 'slowest functions' list never appeared in the tree, so
you couldn't figure out WHO was calling them.

Called 'CrosbyPrefs.4.cs' I believe.


> I'd first see if I couldn't dispense with the TableLayout in the MenuMorphs.
> 
> I'd also cache the pushpin image, and maybe add a preference for simpler
> menu titlebars.
> 
> I'd look into where all the property scanning is going on, and see if I couldn't
> reduce it.
> 

See above.

> **Leaves**
> 31.8% {1355ms} IdentityDictionary>>scanFor:


Also keep in mind that my image patches posted about 4 months ago make
my image about twice as fast as stock (on macroBenchmarks)[1]... and if
this sort of thing is endemic within morphic, it may even be faster
than I realized.[2]

Scott


[1] New method cache. No need for fullGC on root table overflow. And not having primitiveResponse read the clock 80,000 times/second. (I used ITIMER, but AR had a better general solution.)
[2] Also threw in the identity**** fixups.. Those are worth about 3 orders of magnitude on some workloads.



More information about the Squeak-dev mailing list