On Nov 15, 1:03 am, de...@web.de (Diez B. Roggisch) wrote:
> You don't say what data you share, and if all of it is needed for each
> child. So it's hard to suggest optimizations.

Here is an example of such a problem I'm dealing with now: I'm
building large index of words in memory, it takes 50% of RAM. After
building it I want to enable querying it using multiple processors
enabling fast handling of multiple clients at once (communication is
done with sockets). So I create the index in the parent process and
than fork children that handle client queries. But after a short time
only traversing the index by children makes them use much memory,
resulting shortly in Out Of Memory Errors.

> And AFAIK there is no
> built-in way of doing what you want. It's complex and error-prone.

Having read-only objects is complex and error-prone?

> Maybe mmap + (struct|pickle) help, if what you need can be formulated in a way
> that traversing the whole data piecewise by explicitly
> marshaling-demarshaling data?

In case of this word index it is impossible... And probably would be
too slow. Using mmap and mapping the object structure into structs
should probably work...
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to