Hallo,
Ich habe mal eine Frage zu cpickle. In der Python-Doku habe ich gelesen, dass das Modul cpickle ca. 1000 mal schneller ist, als das Modul pickle.
Ich frage mich nun, wie so etwas möglich sein kann? Es handelt sich hierbei nicht um Peanuts sondern um Größenordnungen.
Vielleicht könnte mir das bitte jemand erklären.
cpickle kontra pickle
-
- Python-Forum Veteran
- Beiträge: 2010
- Registriert: Freitag 11. Oktober 2002, 18:00
- Wohnort: Salzburg
- Kontaktdaten:
Hi HarryH,
cpickle arbeitet direkt auf den C-Strukturen der in C gecodeten Module und kann daher effizienter auf die Einträge dort zugreiffen. In nativem Python müssen beim Serialisieren der Daten oft grosse Mengen an Objekten erzeugt werden, was sich natürlich negativ auf die Performance auswirkt.
Das normale Pickle halt den Vorteil, daß es die Klassen Pickler und Unpickler bereitstellt von welchen sich Unterklassen ableiten lassen. Im allgemeinen sollte man aber mit den Funktionen von cpickle auskommen.
Gruß
Dookie
cpickle arbeitet direkt auf den C-Strukturen der in C gecodeten Module und kann daher effizienter auf die Einträge dort zugreiffen. In nativem Python müssen beim Serialisieren der Daten oft grosse Mengen an Objekten erzeugt werden, was sich natürlich negativ auf die Performance auswirkt.
Das normale Pickle halt den Vorteil, daß es die Klassen Pickler und Unpickler bereitstellt von welchen sich Unterklassen ableiten lassen. Im allgemeinen sollte man aber mit den Funktionen von cpickle auskommen.
Gruß
Dookie