[Python-Dev] More optimisation ideas

Serhiy Storchaka storchaka at gmail.com
Sat Jan 30 09:45:44 EST 2016


On 29.01.16 19:05, Steve Dower wrote:
> This is probably the code snippet that bothered me the most:
>
>      ### Encoding table
>      encoding_table=codecs.charmap_build(decoding_table)
>
> It shows up in many of the encodings modules, and while it is not a bad
> function in itself, we are obviously generating a known data structure
> on every startup. Storing these in static data is a tradeoff between
> disk space and startup performance, and one I think it likely to be
> worthwhile.

$ ./python -m timeit -s "import codecs; from encodings.cp437 import 
decoding_table" -- "codecs.charmap_build(decoding_table)"
100000 loops, best of 3: 4.36 usec per loop

Getting rid from charmap_build() would save you at most 4.4 microseconds 
per encoding. 0.0005 seconds if you have imported *all* standard encodings!

And how you expected to store encoding_table in more efficient way?



More information about the Python-Dev mailing list