STINNER Victor added the comment:

Here is a micro benchmark:
---
# run it using:
# benchmark.py script bench_int_str.py [--file=output]
# https://bitbucket.org/haypo/misc/src/tip/python/benchmark.py

def run_benchmark(bench):
    bench.timeit('S(123)', setup='S=str')
    bench.timeit('S(1) == S(2)', setup='S=str')
    bench.timeit('S(12345)', setup='S=str')
    bench.timeit('{S(x): x for x in data}', setup='data=tuple(range(100)); 
S=str')
    bench.timeit('"x=%s" % x', setup='x=123')
    bench.timeit('"x=%s" % x', setup='x=12345')
---

Output:
-------------------------------------------------------+-------------+---------------
Tests                                                  |   unpatched |        
patched
-------------------------------------------------------+-------------+---------------
S=str; S(123)                                          |  158 ns (*) |  112 ns 
(-29%)
S=str; S(1) == S(2)                                    |  329 ns (*) |  248 ns 
(-25%)
S=str; S(12345)                                        |  161 ns (*) |         
161 ns
data=tuple(range(100)); S=str; {S(x): x for x in data} |   23 us (*) | 16.5 us 
(-28%)
x=123; "x=%s" % x                                      |  145 ns (*) |   133 ns 
(-8%)
x=12345; "x=%s" % x                                    |  149 ns (*) |         
145 ns
-------------------------------------------------------+-------------+---------------
Total                                                  | 23.9 us (*) | 17.3 us 
(-27%)
-------------------------------------------------------+-------------+---------------

I expected more important speedup.

----------
Added file: http://bugs.python.org/file27285/bench_int_str.py

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue16001>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to