<div dir="ltr">and I mean loooong...<div><br></div><div><div>.scavenging(722)...scavenging(723)...scavenging(724)...scavenging(725)...scavenging(726)...scavenging(727)...scavenging(728)...scavenging(729)...</div><div>   -16r3318 IdentityDictionary>scanFor: 16rE7140: a(n) IdentityDictionary</div><div>   -16r32F4 IdentityDictionary(Dictionary)>at:ifAbsent: 16rE7140: a(n) IdentityDictionary</div><div>   -16r32D0 MorphExtension>valueOfProperty: 16rA20C8: a(n) MorphExtension</div><div>   -16r32B0 Morph>valueOfProperty: 16r9CEB8: a(n) Morph</div><div>   -16r3290 Morph>eventBubbleFilters 16r9CEB8: a(n) Morph</div><div>   -16r3264 Morph>sendFilterEventBubble:for: 16r9CEB8: a(n) Morph</div><div>   -16r323C Morph>handleEvent: 16r9CEB8: a(n) Morph</div><div>   -16r3214 MorphicEventDispatcher>dispatchEvent:withHandler:withMorph: 16r2D5C08: a(n) MorphicEventDispatcher</div><div>   -16r31EC MorphicEventDispatcher>dispatchDefault:with: 16r2D5C08: a(n) MorphicEventDispatcher</div><div>   -16r31C8 MorphicEventDispatcher>dispatchEvent:with: 16r2D5C08: a(n) MorphicEventDispatcher</div><div>   -16r31A0 Morph>processEvent:using: 16r9CEB8: a(n) Morph</div><div>   -16r3170 [] in MorphicEventDispatcher>dispatchEvent:toSubmorphsOf: 16r2D5C08: a(n) MorphicEventDispatcher</div><div>   -16r3148 Array(SequenceableCollection)>do: 16r9D400: a(n) Array</div><div>   -16r3128 FillInTheBlankMorph(Morph)>submorphsDo: 16r9A498: a(n) FillInTheBlankMorph</div><div>   -16r3104 MorphicEventDispatcher>dispatchEvent:toSubmorphsOf: 16r2D5C08: a(n) MorphicEventDispatcher</div><div>   -16r30D8 MorphicEventDispatcher>dispatchEvent:withHandler:withMorph: 16r2D5C08: a(n) MorphicEventDispatcher</div><div>   -16r30B0 MorphicEventDispatcher>dispatchDefault:with: 16r2D5C08: a(n) MorphicEventDispatcher</div><div>   -16r308C MorphicEventDispatcher>dispatchEvent:with: 16r2D5C08: a(n) MorphicEventDispatcher</div><div>   -16r3064 FillInTheBlankMorph(Morph)>processEvent:using: 16r9A498: a(n) FillInTheBlankMorph</div><div>   -16r3038 MorphicEventDispatcher>doProcessingForFocusEvent:with: 16r2D5C08: a(n) MorphicEventDispatcher</div><div>   -16r3010 MorphicEventDispatcher>dispatchFocusEventFully:with: 16r2D5C08: a(n) MorphicEventDispatcher</div><div>   -16r2AF4 FillInTheBlankMorph(DialogWindow)>processFocusEvent:using: 16r9A498: a(n) FillInTheBlankMorph</div><div>   -16r2AD0 FillInTheBlankMorph(Morph)>processFocusEvent: 16r9A498: a(n) FillInTheBlankMorph</div><div>   -16r2AA4 [] in HandMorph>sendFocusEvent:to:clear: 16rC85548: a(n) HandMorph</div><div>   -16r2A80 BlockClosure>ensure: 16r2D5B70: a(n) BlockClosure</div><div>   -16r2A5C MouseEvent(MorphicEvent)>becomeActiveDuring: 16r2D57D0: a(n) MouseEvent</div><div>   -16r2A30 [] in HandMorph>sendFocusEvent:to:clear: 16rC85548: a(n) HandMorph</div><div>   -16r2A0C BlockClosure>ensure: 16r2D5A78: a(n) BlockClosure</div><div>   -16r29E8 HandMorph>becomeActiveDuring: 16rC85548: a(n) HandMorph</div><div>   -16r29BC [] in HandMorph>sendFocusEvent:to:clear: 16rC85548: a(n) HandMorph</div><div>   -16r2998 BlockClosure>ensure: 16r2D5980: a(n) BlockClosure</div><div>   -16r2974 PasteUpMorph>becomeActiveDuring: 16r898788: a(n) PasteUpMorph</div><div>   -16r294C HandMorph>sendFocusEvent:to:clear: 16rC85548: a(n) HandMorph</div><div>   -16r291C HandMorph>sendEvent:focus:clear: 16rC85548: a(n) HandMorph</div><div>   -16r28F4 HandMorph>sendMouseEvent: 16rC85548: a(n) HandMorph</div><div>   -16r28D0 HandMorph>handleEvent: 16rC85548: a(n) HandMorph</div><div>   -16r28A4 MouseOverHandler>processMouseOver: 16r2D08BC8: a(n) MouseOverHandler</div><div>   -16r2874 HandMorph>processEvents 16rC85548: a(n) HandMorph</div><div>   -16r2854 [] in WorldState>doOneCycleNowFor: 16r126DFF8: a(n) WorldState</div><div>   -16r282C Array(SequenceableCollection)>do: 16r434190: a(n) Array</div><div>   -16r280C WorldState>handsDo: 16r126DFF8: a(n) WorldState</div><div>   -16r2374 WorldState>doOneCycleNowFor: 16r126DFF8: a(n) WorldState</div><div>   -16r2354 WorldState>doOneCycleFor: 16r126DFF8: a(n) WorldState</div><div>   -16r2330 WorldState>doOneSubCycleFor: 16r126DFF8: a(n) WorldState</div><div>   -16r2310 PasteUpMorph>doOneSubCycle 16r898788: a(n) PasteUpMorph</div><div>   -16r22E8 [] in FillInTheBlankMorph(DialogWindow)>getUserResponse 16r9A498: a(n) FillInTheBlankMorph</div><div>   -16r22C8 UndefinedObject(Object)>in: 16r41A280: a(n) UndefinedObject</div><div>   -16r22A0 [] in FillInTheBlankMorph(DialogWindow)>getUserResponse 16r9A498: a(n) FillInTheBlankMorph</div><div>   -16r2280 UndefinedObject(Object)>in: 16r41A280: a(n) UndefinedObject</div><div>   -16r2254 FillInTheBlankMorph(DialogWindow)>getUserResponse 16r9A498: a(n) FillInTheBlankMorph</div><div>   -16r2234 FillInTheBlankMorph class>request:initialAnswer:centerAt:inWorld:onCancelReturn:acceptOnCR:answerExtent: 16r12232B8: a(n) FillInTheBlankMorph class</div><div>   -16r21FC FillInTheBlankMorph class>request:initialAnswer:centerAt:inWorld:onCancelReturn:acceptOnCR: 16r12232B8: a(n) FillInTheBlankMorph class</div><div>   -16r21C8 FillInTheBlankMorph class>request:initialAnswer:centerAt:inWorld:onCancelReturn: 16r12232B8: a(n) FillInTheBlankMorph class</div><div>   -16r2198 FillInTheBlankMorph class>request:initialAnswer:centerAt:inWorld: 16r12232B8: a(n) FillInTheBlankMorph class</div><div>   -16r216C FillInTheBlankMorph class>request:initialAnswer:centerAt: 16r12232B8: a(n) FillInTheBlankMorph class</div><div>   -16r2144 FillInTheBlankMorph class>request:initialAnswer: 16r12232B8: a(n) FillInTheBlankMorph class</div><div>   -16r2120 MorphicUIManager>request:initialAnswer: 16r821990: a(n) MorphicUIManager</div><div>   -16r20F8 SmalltalkImage>getFileNameFromUserSuggesting: 16r79FC80: a(n) SmalltalkImage</div><div>   -16r20D8 SmalltalkImage>getFileNameFromUser 16r79FC80: a(n) SmalltalkImage</div><div>   -16r20B8 SmalltalkImage>saveAs 16r79FC80: a(n) SmalltalkImage</div><div>   -16r209C TheWorldMainDockingBar>saveImageAs 16r739530: a(n) TheWorldMainDockingBar</div><div>   -16r2078 [] in MenuItemMorph>invokeWithEvent: 16r16E7B60: a(n) MenuItemMorph</div><div>   -16r2054 BlockClosure>ensure: 16r9DBD0: a(n) BlockClosure</div><div>   -16r2030 CursorWithMask(Cursor)>showWhile: 16r70B1C0: a(n) CursorWithMask</div><div>   -16r200C MenuItemMorph>invokeWithEvent: 16r16E7B60: a(n) MenuItemMorph</div><div>scavenging(730)...scavenging(731)...scavenging(732)...scavenging(733)...</div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jan 3, 2017 at 11:29 AM, Eliot Miranda <span dir="ltr"><<a href="mailto:eliot.miranda@gmail.com" target="_blank">eliot.miranda@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi All,<div><br></div><div>    in working on the compactor in the simulator I'm observing some loooong pauses due to some, um, interesting image code.  For example...</div><div><br></div><div><div><br></div><div>   -16r31A8 IdentityDictionary>scanFor: 16r7333E8: a(n) IdentityDictionary</div><div>   -16r3184 IdentityDictionary(Dictionary)<wbr>>at:ifAbsent: 16r7333E8: a(n) IdentityDictionary</div><div>   -16r3160 MorphExtension><wbr>valueOfProperty: 16r4341A0: a(n) MorphExtension</div><div>   -16r3140 PasteUpMorph(Morph)><wbr>valueOfProperty: 16r898788: a(n) PasteUpMorph</div><div>   -16r3120 PasteUpMorph(Morph)><wbr>eventBubbleFilters 16r898788: a(n) PasteUpMorph</div><div>   -16r30F4 PasteUpMorph(Morph)><wbr>sendFilterEventBubble:for: 16r898788: a(n) PasteUpMorph</div><div>   -16r30CC PasteUpMorph(Morph)><wbr>handleEvent: 16r898788: a(n) PasteUpMorph</div><div>   -16r30A0 [] in MorphicEventDispatcher><wbr>doBubblingForFocusEvent:with: 16r2638F8: a(n) MorphicEventDispatcher</div><div>   -16r3080 PasteUpMorph(Morph)><wbr>withAllOwnersDo: 16r898788: a(n) PasteUpMorph</div><div>   -16r3060 FillInTheBlankMorph(Morph)><wbr>allOwnersDo: 16r9A498: a(n) FillInTheBlankMorph</div><div>   -16r3038 MorphicEventDispatcher><wbr>doBubblingForFocusEvent:with: 16r2638F8: a(n) MorphicEventDispatcher</div><div>   -16r3010 MorphicEventDispatcher><wbr>dispatchFocusEventFully:with: 16r2638F8: a(n) MorphicEventDispatcher</div><div>   -16r2B38 FillInTheBlankMorph(<wbr>DialogWindow)><wbr>processFocusEvent:using: 16r9A498: a(n) FillInTheBlankMorph</div><div>   -16r2B14 FillInTheBlankMorph(Morph)><wbr>processFocusEvent: 16r9A498: a(n) FillInTheBlankMorph</div><div>   -16r2AE8 [] in HandMorph>sendFocusEvent:to:<wbr>clear: 16rC85548: a(n) HandMorph</div><div>   -16r2AC4 BlockClosure>ensure: 16r263860: a(n) BlockClosure</div><div>   -16r2AA0 MouseEvent(MorphicEvent)><wbr>becomeActiveDuring: 16r2634C0: a(n) MouseEvent</div><div>   -16r2A74 [] in HandMorph>sendFocusEvent:to:<wbr>clear: 16rC85548: a(n) HandMorph</div><div>   -16r2A50 BlockClosure>ensure: 16r263768: a(n) BlockClosure</div><div>   -16r2A2C HandMorph>becomeActiveDuring: 16rC85548: a(n) HandMorph</div><div>   -16r2A00 [] in HandMorph>sendFocusEvent:to:<wbr>clear: 16rC85548: a(n) HandMorph</div><div>   -16r29DC BlockClosure>ensure: 16r263670: a(n) BlockClosure</div><div>   -16r29B8 PasteUpMorph><wbr>becomeActiveDuring: 16r898788: a(n) PasteUpMorph</div><div>   -16r2990 HandMorph>sendFocusEvent:to:<wbr>clear: 16rC85548: a(n) HandMorph</div><div>   -16r2960 HandMorph>sendEvent:focus:<wbr>clear: 16rC85548: a(n) HandMorph</div><div>   -16r2938 HandMorph>sendMouseEvent: 16rC85548: a(n) HandMorph</div><div>   -16r2914 HandMorph>handleEvent: 16rC85548: a(n) HandMorph</div><div>   -16r28E8 MouseOverHandler><wbr>processMouseOver: 16r2D08BC8: a(n) MouseOverHandler</div><div>   -16r28B8 HandMorph>processEvents 16rC85548: a(n) HandMorph</div><div>   -16r2898 [] in WorldState>doOneCycleNowFor: 16r126DFF8: a(n) WorldState</div><div>   -16r2870 Array(SequenceableCollection)><wbr>do: 16r434190: a(n) Array</div><div>   -16r2850 WorldState>handsDo: 16r126DFF8: a(n) WorldState</div><div>   -16r282C WorldState>doOneCycleNowFor: 16r126DFF8: a(n) WorldState</div><div>   -16r280C WorldState>doOneCycleFor: 16r126DFF8: a(n) WorldState</div><div>   -16r2330 WorldState>doOneSubCycleFor: 16r126DFF8: a(n) WorldState</div><div>   -16r2310 PasteUpMorph>doOneSubCycle 16r898788: a(n) PasteUpMorph</div><div>   -16r22E8 [] in FillInTheBlankMorph(<wbr>DialogWindow)>getUserResponse 16r9A498: a(n) FillInTheBlankMorph</div><div>   -16r22C8 UndefinedObject(Object)>in: 16r41A280: a(n) UndefinedObject</div><div>   -16r22A0 [] in FillInTheBlankMorph(<wbr>DialogWindow)>getUserResponse 16r9A498: a(n) FillInTheBlankMorph</div><div>   -16r2280 UndefinedObject(Object)>in: 16r41A280: a(n) UndefinedObject</div><div>   -16r2254 FillInTheBlankMorph(<wbr>DialogWindow)>getUserResponse 16r9A498: a(n) FillInTheBlankMorph</div><div>   -16r2234 FillInTheBlankMorph class>request:initialAnswer:<wbr>centerAt:inWorld:<wbr>onCancelReturn:acceptOnCR:<wbr>answerExtent: 16r12232B8: a(n) FillInTheBlankMorph class</div><div>   -16r21FC FillInTheBlankMorph class>request:initialAnswer:<wbr>centerAt:inWorld:<wbr>onCancelReturn:acceptOnCR: 16r12232B8: a(n) FillInTheBlankMorph class</div><div>   -16r21C8 FillInTheBlankMorph class>request:initialAnswer:<wbr>centerAt:inWorld:<wbr>onCancelReturn: 16r12232B8: a(n) FillInTheBlankMorph class</div><div>   -16r2198 FillInTheBlankMorph class>request:initialAnswer:<wbr>centerAt:inWorld: 16r12232B8: a(n) FillInTheBlankMorph class</div><div>   -16r216C FillInTheBlankMorph class>request:initialAnswer:<wbr>centerAt: 16r12232B8: a(n) FillInTheBlankMorph class</div><div>   -16r2144 FillInTheBlankMorph class>request:initialAnswer: 16r12232B8: a(n) FillInTheBlankMorph class</div><div>   -16r2120 MorphicUIManager>request:<wbr>initialAnswer: 16r821990: a(n) MorphicUIManager</div><div>   -16r20F8 SmalltalkImage><wbr>getFileNameFromUserSuggesting: 16r79FC80: a(n) SmalltalkImage</div><div>   -16r20D8 SmalltalkImage><wbr>getFileNameFromUser 16r79FC80: a(n) SmalltalkImage</div><div>   -16r20B8 SmalltalkImage>saveAs 16r79FC80: a(n) SmalltalkImage</div><div>   -16r209C TheWorldMainDockingBar><wbr>saveImageAs 16r739530: a(n) TheWorldMainDockingBar</div><div>   -16r2078 [] in MenuItemMorph>invokeWithEvent: 16r16E7B60: a(n) MenuItemMorph</div><div>   -16r2054 BlockClosure>ensure: 16r9DC50: a(n) BlockClosure</div><div>   -16r2030 CursorWithMask(Cursor)><wbr>showWhile: 16r70B1C0: a(n) CursorWithMask</div><div>   -16r200C MenuItemMorph>invokeWithEvent: 16r16E7B60: a(n) MenuItemMorph</div><div>scavenging(676)...scavenging(<wbr>677)...scavenging(678)...<wbr>scavenging(679)...scavenging(<wbr>680)...scavenging(681)...<wbr>scavenging(682)...</div><div><br></div><div>and so on.</div><div><br></div><div>It seems that doBubblingForFocusEvent:with hides a /lot/ of computation.  I wonder if the system might be more responsive if this were to receive some attention.</div><div class="m_-2353158010621596445gmail_signature"><div dir="ltr"><div><span style="font-size:small;border-collapse:separate"><div>_,,,^..^,,,_<br></div><div>best, Eliot</div></span></div></div></div>
</div></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><span style="font-size:small;border-collapse:separate"><div>_,,,^..^,,,_<br></div><div>best, Eliot</div></span></div></div></div>
</div>