New submission from Serhiy Storchaka <storchaka+cpyt...@gmail.com>:
The proposed PR reduces an overhead of calling Py_EnterRecursiveCall() when pickle simple non-recusive values: None, True, False, instances of int, float, bytes, str. $ ./python -m timeit -s 'data = list(range(10**7)); import pickle' -- 'pickle.dumps(data)' Unpatched: 218 msec per loop Patched: 147 msec per loop $ ./python -m timeit -s 'data = list(map(float, range(10**7))); import pickle' -- 'pickle.dumps(data)' Unpatched: 218 msec per loop Patched: 179 msec per loop $ ./python -m timeit -s 'data = list(map(str, range(10**6))); import pickle' -- 'pickle.dumps(data)' Unpatched: 212 msec per loop Patched: 201 msec per loop ---------- components: Library (Lib) messages: 321841 nosy: alexandre.vassalotti, pitrou, serhiy.storchaka priority: normal severity: normal status: open title: Speed up pickling simple non-recusive values type: performance versions: Python 3.8 _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue34141> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com