M.-A. Lemburg wrote:
> I was leaving those out already - only the codes named 'ERROR_*'
> get included (see attached parser and generator).

Right. One might debate whether DNS_INFO_AXFR_COMPLETE (9751L)
or WSAEACCES (10013L) should be included as well.

I got a smaller source file as I included only forward mappings,
and used a loop to create the backwards mappings.

> Using a lookup object is not really clumsy - you can still access
> all the values by attribute access. The only difference is that
> they don't live in the module namespace, but get accessed via
> an object.

So how much space would that save?

> I'm not worried about the disk space being used. The heap
> memory usage is what's worrying: the import of the module lets
> the non-shared memory size of the process grow by 700kB
> on my AMD64 box.

That number must be misleading somehow. There are 1510 strings,
with a total length of 39972. There are 1510 integers also,
and they all get added into three dictionaries.

On a 32-bit machine, these should consume 76968 bytes for the
strings (*), 18120 bytes for the integers, and 100000 bytes
for the dict entries (**), for a total of 200000 bytes
at run-time.

On a 64-bit machine, the strings should consume 101128 bytes (***),
the integers 24160, and the dict entries 200000 bytes,
for a total of 325000 bytes.

>From that, I would conclude that one should avoid 64-bit machines
if one is worried about memory usage :-)

Regards,
Martin

(*) assuming 20 bytes string header, 1 byte null-termination,
and a rounding-up to the next multiple of 8
(**) assuming 12 bytes per dict entry in three dictionaries
(winerror.__dict__, winerror.errorcode, interning dict),
and assuming an average fill ratio of the dicts of 50%
(***) assuming 40 bytes string header, provided long is
a 64-bit type on that platform
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to