[BUG] Whisker clogs up DependentsFields; Object flushDependents brutally
slow
Brian Keefer
mgomes21 at cox.net
Wed May 15 20:47:00 UTC 2002
By brutally slow, I mean flushDependents takes over a minute. My image
gradually came to this level of sloth, I only noticed the growing delay in
save&|quit(which do explicit GC with flushDependents). DependentsFields
contains 4600 instances of
ClassInHierarchyWrapper, which I guess is eating most of my cycles.
According to Object's comment, heavy users of dependents should inherit
from Model, and carry their own deps list. Would reparenting
ListItemWrapper to Modal be the right fix?
If I nuke the deps, things become bearable again.
DependentsFields become: (DependentsFields reject:
[:a|a first class=IndentingListItemMorph])
The attachments are made of:
MessageTally spyOn:[Object flushDependents]
toFileNamed:'flushDependents-spy.txt'.
foo_Bag new.
DependentsFields keysAndValuesDo:
[:a :b|foo add: a class.].
foo explore "save to jpeg"
Q: What, exactly, is The Force? A: a plot device
- Magic 8 ball, Geek edition
-------------- next part --------------
- 4058 tallies, 69788 msec.
**Tree**
100.0% {69788ms} Object class>>flushDependents
95.9% {66927ms} ClassCategorySectionWrapper(Object)>>removeDependent:
|48.3% {33708ms} TitledPane(Object)>>dependents
| |48.3% {33708ms} TitledPane(Object)>>myDependents
| | 48.3% {33708ms} WeakIdentityKeyDictionary(Dictionary)>>at:ifAbsent:
| | 48.3% {33708ms} WeakIdentityKeyDictionary(Set)>>findElementOrNil:
| | 48.3% {33708ms} WeakIdentityKeyDictionary>>scanFor:
| | 37.7% {26310ms} WeakKeyAssociation>>key
| | 10.6% {7398ms} primitives
|47.3% {33010ms} MethodCategoryWrapper(Object)>>myDependents:
| 47.3% {33010ms} WeakIdentityKeyDictionary(WeakKeyDictionary)>>at:put:
| 47.3% {33010ms} WeakIdentityKeyDictionary(Set)>>findElementOrNil:
| 47.3% {33010ms} WeakIdentityKeyDictionary>>scanFor:
| 41.4% {28892ms} WeakKeyAssociation>>key
| 5.8% {4048ms} primitives
4.1% {2861ms} WeakIdentityKeyDictionary(WeakKeyDictionary)>>finalizeValues
4.0% {2792ms} WeakIdentityKeyDictionary(WeakKeyDictionary)>>rehash
4.0% {2792ms} WeakIdentityKeyDictionary>>scanForNil:
**Leaves**
79.1% {55202ms} WeakKeyAssociation>>key
16.4% {11445ms} WeakIdentityKeyDictionary>>scanFor:
4.0% {2792ms} WeakIdentityKeyDictionary>>scanForNil:
**Memory**
old +126,536 bytes
young +61,900 bytes
used +188,436 bytes
free -188,436 bytes
**GCs**
full 0 totalling 0ms (0.0% uptime)
incr 73 totalling 122ms (0.0% uptime), avg 2.0ms
tenures 4 (avg 18 GCs/tenure)
root table 0 overflows
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Explorer.jpeg
Type: image/jpeg
Size: 35988 bytes
Desc: not available
Url : http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20020515/42b2c422/Explorer.jpeg
More information about the Squeak-dev
mailing list
|