Unfortunately this means that the busier your image is, the less
benefit you get from a memory usage point of view. But even at that,
you still get the advantage of doing the image save in a background
OS process running at lower OS scheduling priority.
I do not actually run any Seaside server images, so someone would
need to try this on a real system to find out how much benefit it
delivers in practice. I would be interested to know the results.
Dave
On Fri, Jul 23, 2010 at 02:12:14PM +0200, Lukas Renggli wrote:
David, is what is said about memory management really true? I thought
that saving the image triggered a garbage collect what forces to copy
the whole memory anyway.
Lukas
On 23 July 2010 14:00, David T. Lewis <lewis@mail.msen.com> wrote:
On Fri, Jul 23, 2010 at 09:49:46AM +0200, Lukas Renggli wrote:
But How I can do that without fork? I track changes in another process and
when I do update I save image in this process.
How I can initiate image saving from ui process?
I don't understand what you are saying.
The thing is that using #fork to save the image has no effect (other
than wrecking the image), because #snapshot:andQuit: is eventually
calling a primitive that locks the complete VM anyway.
If you want to fork while saving the image you need to use an OS-level
fork, not a Smalltalk-level fork. You can do this with OSProcess for
example (check the Seaside mailing-list archive).
"UnixProcess saveImageInBackgroundNicely"
Explained in the method comment:
UnixProcess class>>saveImageInBackground: savedImageName nice: niceFlag
? ? ? ?"When Squeak is used as a server it is sometimes desirable to periodically
? ? ? ?save image snapshots. This method forks a headless Squeak to perform a
? ? ? ?snapshot without impacting the server Squeak. Very little additional memory
? ? ? ?is required to do this because Unix copy-on-write memory management allows
? ? ? ?the two Squeak images to share object memory while the save is performed.
? ? ? ?The saved image is given a time stamped name, and the image name of
? ? ? ?the main server Squeak remains unchanged. If niceFlag is true, the
? ? ? ?background OS process runs at lowered scheduling priority."
Dave
_______________________________________________
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
--
Lukas Renggli
www.lukas-renggli.ch
_______________________________________________
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________
Pharo-project mailing list
Pharo-project@lists.gforge.inria.frhttp://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project