[Python-Dev] Guarantee ordered dict literals in v3.7?

Stefan Krah stefan at bytereef.org
Mon Nov 6 05:36:59 EST 2017

On Mon, Nov 06, 2017 at 12:18:17PM +0200, Paul Sokolovsky wrote:
> MicroPython hashmap implementation is effectively O(n) (average and
> worst case) due to the algorithm parameters chosen (like the load factor
> of 1). Of course, parameters could be tweaked, but the ones chosen are
> so because the memory usage is far more important for MicroPython
> systems than performance characteristics (all due to small amounts of
> memory). Like, MicroPython was twice as fast than Python 3.3 on
> average, and 1000 times more efficient in the memory usage.

$ cat xxx.py 

def pi_float():
    """native float"""
    lasts, t, s, n, na, d, da = 0, 3.0, 3, 1, 0, 0, 24
    while s != lasts:
        lasts = s
        n, na = n+na, na+8
        d, da = d+da, da+32
        t = (t * n) / d
        s += t
    return s

for i in range(100000):
    x = pi_float()

$ time ./micropython xxx.py 

real    0m4.424s
user    0m4.406s
sys     0m0.016s
$ time ../../cpython/python xxx.py 

real    0m1.066s
user    0m1.056s
sys     0m0.010s

Congratulations ...

Stefan Krah

More information about the Python-Dev mailing list