Message321841
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 |
|
Date |
User |
Action |
Args |
2018-07-17 16:49:06 | serhiy.storchaka | set | recipients:
+ serhiy.storchaka, pitrou, alexandre.vassalotti |
2018-07-17 16:49:06 | serhiy.storchaka | set | messageid: <1531846146.68.0.56676864532.issue34141@psf.upfronthosting.co.za> |
2018-07-17 16:49:06 | serhiy.storchaka | link | issue34141 messages |
2018-07-17 16:49:06 | serhiy.storchaka | create | |
|