[Seaside] More on Squeak scalability, and a question concering Pharo and Cog.

John M McIntosh johnmci at smalltalkconsulting.com
Sun Sep 13 06:34:19 UTC 2009


On 13-Sep-09, at 4:30 AM, Joseph Harrison wrote:

> like it will go a long way towards fixing that. Second, memory  
> consumption. A
> fully-stocked Pharo image takes up ~40MB. However, a little Googling  
> revealed
> that a fully-stocked Python and Django process requires at least  
> ~30MB, which
> isn't that much better, and I am guessing that a lot of stuff (dev  
> tools, for
> example) can be ripped out of the image to slim it down (and more so  
> as Pharo
> becomes more modular).

Yes, for mobile wiki server on the iphone we have a Pharo image that  
is 10.5 mb in size.
However if you work at it  you'll find that only 3.4 MB of oops memory  
is actually needed out of the
10.5 image to load a Pier CMS and stick some pages up.  But that  
requires you to avoid
doing an explicit full GC, usage of allInstances, and some tuning of  
the GC parms to ensure a full GC
is a last resort.

Although your desktop/server version of Linux/Unix likely will reserve  
pages for the entire image/oops space, the diagram below
which I showed the XtC group in London last week clearly shows that  
much of the oops space isn't needed to run Pier/Seaside.
Under memory pressure the "_" pages below as they aren't referenced  
would be candidates for being marked as free by the operating
system's virtual memory manager.  On the iPhone the pages are only  
loaded from flash into ram on demand, unlike most systems you use
today where they would page in the entire image via the image file  
mmap request.

The trick then is to avoid an allInstances or a full GC.

Sorry I don't have a diagram that details memory behaviour when the  
Pier CMS is serving pages

Diagram:
WikiServer memory footprint as it runs on the iPhone after image  
startup using the default set of pages when it reaches the first point  
of idle time:
Presented to the London XtC group Sept 8th, 209.

1932 pages in flash memory not in ram (the _)
806 in ram memory (the I )
68 modified (the #, also implies that it is in ram)


######II##I______III#_I_I__#II_I___________#____I__I____________#II_____ 
___________#_______________________I_______#I_II________________________ 
______I_IIIIIIIII#IIIII#IIIIIIIIIIIIIIIIIIIIIIIIII_IIIIIIIIIIIIIIIIIIIII 
IIIII_IIIIIIIIII_IIII_III_IIII_II_IIIIIIIIIIIIIIIIIII_I#______III_I___II 
I_____II##II____II_II___I_I___II_I_I_IIII#IIIIIIIIIII_#IIIIIIIII___IIIII 
_____I__II_#_##___IIIII_I__________III####_________________I__IIIII_#II_ 
__I_III_IIIIII_IIIII_I________II_I_IIIIII#IIIIII_IIII#_IIII__I___IIIIIII 
___IIII_III_____________________________________________________________ 
________________________________________________________________________ 
________________________________________________________________________ 
________________________________________________________________________ 
________________________________________________________________________ 
________________________________________________________________________ 
________________________________________________________________________ 
___________________II__II___III___III_IIIIIII#I_IIIIIIIIII_____I#II__I__ 
__________II__III##IIII________________________________I__IIII_I__II_I#_ 
_##_I#____________#II_____I__#III#I_________#II____III#II_III_IIIIIIIIII 
III_III_II___I_I_IIIIIIIIIIIIIII_I_IIIII_IIIIIIIII__IIIIIIII___I_III___I 
II______I___IIIIIII_I___II_____I_____I_I_________IIII_IIII_IIIIIII_____I 
IIIII_I_IIIIIIIIIIIII_IIIIII_I__I_I____II_II_II________II____I_I__I_III_ 
______II__###__________________________________________________#I__I____ 
II__I___III____________IIIII_I_#IIIIII__________#I______________________ 
III____II________I_____IIIIIIII_________IIIIII_______IIIIIII_I__________ 
_II#I__I_III____I____II_I__II__I____I___II##I_______II________I__I_III__ 
__IIIIII________I_______II_________IIII_______IIIIIIII_____I______I___II 
__IIII_II______I___IIII__IIII_I_______________________________________________________________________II______________________I_______II__I____I________II________IIIIIIIIIIIIIIIIIII_IIII_I__I_I_____I##_IIIIIIIII_I####II_II_________________________________________II_________I_I_________I_____________________________________________________________IIIIII_III_________________III_______III_III_I_I_I__II_II__I_II______II____________IIII__I_____________________________________________________________________________________________________________________________________II__IIIII_______IIII___________IIIII__I#I#I_II________I__IIII__II_I_III_IIII#I__##I___II______________________II__II________I____________________I_______IIIII_______________I_I_I______II___I_____I___________II__I______________________I____________________________II_I________________________________III____II_____________I____##I__I______#___________________________#



--
= 
= 
= 
========================================================================
John M. McIntosh <johnmci at smalltalkconsulting.com>   Twitter:   
squeaker68882
Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
= 
= 
= 
========================================================================






More information about the seaside mailing list