Pandas msgpack vs pickle
msgpack
in Pandas soll ein Ersatz für @ sepickle
.
Per thePandas docs auf msgpack:
Dies ist ein leichtgewichtiges portables Binärformat, das dem binären JSON ähnelt, sehr platzsparend ist und eine gute Leistung sowohl beim Schreiben (Serialisierung) als auch beim Lesen (Deserialisierung) bietet.
Ich stelle jedoch fest, dass sich seine Leistung nicht gegen Gurke zu behaupten scheint.
df = pd.DataFrame(np.random.randn(10000, 100))
>>> %timeit df.to_pickle('test.p')
10 loops, best of 3: 22.4 ms per loop
>>> %timeit df.to_msgpack('test.msg')
10 loops, best of 3: 36.4 ms per loop
>>> %timeit pd.read_pickle('test.p')
100 loops, best of 3: 10.5 ms per loop
>>> %timeit pd.read_msgpack('test.msg')
10 loops, best of 3: 24.6 ms per loop
Frage Abgesehen von möglichen Sicherheitsproblemen mit pickle, was sind die Vorteile von msgpack gegenüber pickle? Ist Pickle immer noch die bevorzugte Methode zur Serialisierung von Daten, oder gibt es derzeit bessere Alternativen?