Part of the
problem may be that renderd uses a new instance
> per style per rendering thread.
Yes, this certainly uses more memory, but it
is an intended feature
AFAIK.
The mapnik.Map object is not (by design) intended to shared between
threads.
If renderd is able to only read the map after initialization (ie. work
with a const mapnik::Map&) there should be little problem with sharing
between threads.