[Vm-dev] Re: Too many full GCs in Cog/Spur ... while just drawing GUI ...

marcel.taeumel Marcel.Taeumel at hpi.de
Sat Apr 9 06:30:43 UTC 2016


Hi Tim,

I noticed the sound glitches while resizing system windows. Then I got
curious whether such trivial GUI operations should trigger full GCs so
frequently. This "ActiveWorld imageForm" felt close enough to the problem.

So, yes, "just redrawing the GUI" via "ActiveWorld changed;
displayWorldSafely" does not trigger full GCs at all. Sorry, for the unclear
problem description. :-)

This does not even trigger the full GCs:

x := PluggableSystemWindow someInstance.
delay := Delay forMilliseconds: 50.
[
	1 to: 50 do: [:ea |
		x extent: (ea * 8) asPoint.
		ActiveWorld displayWorldSafely.
		delay wait]
] repeat.

Hmmm... What is the difference between resizing the window with the mouse
and doing it via #extent:? Ha! It could be the shadow when the window is
active:

x := PluggableSystemWindow someInstance.
delay := Delay forMilliseconds: 50.
x activate. "for the shadow."
[

	1 to: 50 do: [:ea |
		x extent: (ea * 10) asPoint.
		ActiveWorld displayWorldSafely.
		delay wait]
] repeat

An computing the shadow involves creating forms for the shadow cache.
Hmmm... So yes, it is about these big forms create/deletion, which worked
way better in non-Spur than it does in Spur. :-)

So, let's deactivate the shadow via "menuAppearance3d" and try again... no
full GCs. Because Morph >> #updateDropShadowCache is not called and no forms
are created.

Best,
Marcel



--
View this message in context: http://forum.world.st/Too-many-full-GCs-in-Cog-Spur-while-just-drawing-GUI-tp4888823p4889197.html
Sent from the Squeak VM mailing list archive at Nabble.com.


More information about the Vm-dev mailing list