marshal.dumps quadratic growth and marshal.dump not allowing file-like objects
Peter Otten
__peter__ at web.de
Sun Jun 15 07:41:23 EDT 2008
John Machin wrote:
>> Here's how marshal resizes the string:
>>
>> newsize = size + size + 1024;
>> if (newsize > 32*1024*1024) {
>> newsize = size + 1024*1024;
>> }
>>
>> Maybe you can split your large objects and marshal multiple objects to
>> keep the size below the 32MB limit.
>>
>
> But that change went into the svn trunk on 11-May-2008; perhaps the OP
> is using a production release which would have the previous version,
> which is merely "newsize = size + 1024;".
That is indeed much worse. Depending on what the OP means by "large objects"
the problem may be fixed in subversion then.
> Do people really generate 32MB pyc files, or is stopping doubling at
> 32MB just a safety valve in case someone/something runs amok?
A 32MB pyc would correspond to a module of roughly the same size. So
someone/something runs amok in either case.
Peter
More information about the Python-list
mailing list