osdir.com


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Python-Dev] Can I make marshal.dumps() slower but stabler?


12.07.18 08:43, INADA Naoki ????:
> I'm working on making pyc stable, via stablizing marshal.dumps()
> https://bugs.python.org/issue34093

This is not enough for making pyc stable. The order in frozesets still 
is arbitrary.

> Sadly, it makes marshal.dumps() 40% slower.
> Luckily, this overhead is small (only 4%) for dumps(compile(source)) case.

What about the memory consumption?

> So my question is:  May I remove unstable but faster code?
> 
> Or should I make this optional and we maintain two complex code?
> If so, should this option enabled by default or not?

My concern is that even if not make it optional, this will complicate 
the code.

> For example, xmlrpc uses marshal.  But xmlrpc has significant overhead
> other than marshaling, like dumps(compile(source)) case.  So I expect
> marshal.dumps() performance is not critical for it too.

xmlrpc doesn't use the marshal module. It uses terms marshalling and 
unmarshalling, but in different meaning.

> Is there any real application which marshal.dumps() performance is critical?
EVE Online is a well known example.

What if write a script which loads .pyc files and stabilize them? This 
could solve the problem for applications which need stable .pyc files, 
with zero impact on common use.