Movatterモバイル変換


[0]ホーム

URL:


[Python-Dev] A new dictionary implementation

Mark Shannonmark at hotpy.org
Fri Feb 17 14:35:19 CET 2012


On 15/02/12 21:09, Yury Selivanov wrote:> Hello Mark,>> First, I've back-ported your patch on python 3.2.2 (which was relatively> easy).  Almost all tests pass, and those that don't are always failing on> my machine if I remember.  The patch can be found here:http://goo.gl/nSzzY>> Then, I compared memory footprint of one of our applications (300,000 LOC)> and saw it about 6% less than on vanilla python 3.2.2 (660 MB of reserved> process memory compared to 702 MB; Linux Gentoo 64bit) The application is> written in heavy OOP style (for instance, ~1000 classes are generated by our> ORM on the fly, and there are approximately the same amount of hand-written> ones) so I hoped for a much bigger saving.>> As for the patch itself I found one use-case, where python with the patch> behaves differently::>>    class Foo:>        def __init__(self, msg):>            self.msg = msg>>    f = Foo('123')>>    class _str(str):>        pass>>    print(f.msg)>    print(getattr(f, _str('msg')))>> The above snippet works perfectly on vanilla py3.2, but fails on the patched> one  (even on 3.3 compiled from your 'cpython_new_dict' branch)  I'm not sure> that it's a valid code, though.  If not, then we need to fix some python> internals to add exact type  check in 'getattr', in the 'operator.getattr', etc.> And if it is - your  patch needs to be fixed.  In any case, I propose to add> the above code to the  python test-suite, with either expecting a result or an> exception.Your code is valid, the bug is in my code.I've fixed and updated the repository.More tests to be added later.Cheers,Mark.


More information about the Python-Devmailing list

[8]ページ先頭

©2009-2025 Movatter.jp