-
Notifications
You must be signed in to change notification settings - Fork 184
Closed
Description
I'm not sure why that is, but protocol 3 should be the default on Python 3 and can be significantly faster:
>>> b = b"x" * (1024**2)
>>> %timeit cloudpickle.dumps(b)
1.45 ms ± 5.3 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
>>> %timeit cloudpickle.dumps(b, protocol=3)
586 µs ± 2.67 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
Unpickling is also faster:
>>> d1 = cloudpickle.dumps(b)
>>> d2 = cloudpickle.dumps(b, protocol=3)
>>> %timeit pickle.loads(d1)
225 µs ± 843 ns per loop (mean ± std. dev. of 7 runs, 1000 loops each)
>>> %timeit pickle.loads(d2)
67.1 µs ± 348 ns per loop (mean ± std. dev. of 7 runs, 10000 loops each)
Metadata
Metadata
Assignees
Labels
No labels