On Thu, 1 Aug 2002 15:44:37 -0700, Ned Konz ned@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.