[Seaside] MinimalMorphic based web images
Adrian Lienhard
adi at netstyle.ch
Fri Oct 19 22:32:31 UTC 2007
On Oct 19, 2007, at 18:35 , Jimmie Houchin wrote:
> Adrian Lienhard wrote:
>> On Oct 17, 2007, at 07:02 , Philippe Marschall wrote:
>>> 2007/10/15, Jimmie Houchin <j.squeak at cyberhaus.us>:
>>>> Philippe Marschall wrote:
>>>>> 2007/10/15, Jimmie Houchin <j.squeak at cyberhaus.us>:
> [snip]
>>>> Hello Philippe,
>>>>
>>>> Thanks for the reply. Unfortunately, I wasn't very clear, my
>>>> apologies.
>>>>
>>>> The image seems to be doing some kind of polling which is using
>>>> CPU even
>>>> when the image should seem to be using none as it is doing nothing.
>>>
>>> Could be anything. At lest the gc will have to do same work from
>>> time
>>> to time. But it is also very likely the UI is not completely idle as
>>> well. That's my Seaside Hosting suspends the whole process to make
>>> everything is really idle and nothing happens.
>> Very likely it's the UI loop (GC activity depends on number of
>> instantiated objects, not on time elapsed). You can suspend/resume
>> the UI process, for example with the Seaside snapshot application,
>> if you want to spare some cycles (which can be significant as soon
>> as you have many images).
>> Oh, and make sure that the preference named betterPerformance is
>> turned _off_.
>
> Hello Adrian,
>
> Thanks for the reply. From my playing around with suspending the UI
> it does seem to be the UI loop causing the regular (once a second
> or so) 2-5% spike in CPU. Suspending UI makes the Squeak process
> flat until serving something.
>
> As I am hoping to get Squeak/Seaside hosting on my web host
> provider, this is a very important issue.
>
> I am glad you made me aware of that setting. Is that the setting
> where Squeak decides to be more aggressive on its CPU use? I am
> sure a hosting provider would definitely want that turned off.
Actually, the preference is named #higherPerformance (not
betterPerformance). The UI loops with a default delay of 20ms. If
this preference is enabled, it loops with 1ms (which makes absolutely
no sense on a server). By default it should be turned off (in the 3.9
process it once was accidentally turned on, which caused me some
headache until I found the cause for the sudden much higher CPU use).
Cheers,
Adrian
PS: This is also related to a problem I recently had on a production
application where sometimes Seaside suddenly stopped serving (see
http://bugs.squeak.org/view.php?id=6581). While the problem was quite
complex to debug, the fix I use is trivial: just increase the cycle
pause to 50ms...
More information about the seaside
mailing list