INADA Naoki added the comment: Python 3.5 has similar issue: $ ~/local/py35/bin/patched -m perf timeit --compare-to ~/local/py35/bin/master -- 'd = {"a":1, "b":2, "c":3, "d":4, "e":5, "f":6}' master: ..................... 1.15 us +- 0.09 us patched: ..................... 885 ns +- 37 ns
Median +- std dev: [master] 1.15 us +- 0.09 us -> [patched] 885 ns +- 37 ns: 1.30x faster patch: diff -r 20f62e4a9c2f Objects/dictobject.c --- a/Objects/dictobject.c Wed Nov 16 16:32:22 2016 -0800 +++ b/Objects/dictobject.c Fri Nov 18 12:56:38 2016 +0000 @@ -1015,8 +1015,9 @@ PyObject * { Py_ssize_t newsize; PyDictKeysObject *new_keys; + minused = (minused * 3 + 1) / 2; for (newsize = PyDict_MINSIZE_COMBINED; - newsize <= minused && newsize > 0; + newsize < minused && newsize > 0; newsize <<= 1) ; new_keys = new_keys_object(newsize); ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue28731> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com