Hiho,
ich wollte fragen ob es eine Alternative zu cPickle gibt? Es sollte möglichst schnell sein und Dictionaries abspeichern/laden können.
Ach ja, kein MySQL
dankö schonmal,
t0m
cPickle Alternative
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
YAML, JSON, SQLObject (und die ganzen anderen ORMs), PyXO, XMarshaL, gnosis-Tools uvm.
Edit: Siehe auch die passende Kategorie (serialization+python) im Comprehensive Bookmark Archive
Edit: URL korrigiert.
Edit: Siehe auch die passende Kategorie (serialization+python) im Comprehensive Bookmark Archive
Edit: URL korrigiert.
Zuletzt geändert von Leonidas am Mittwoch 26. Oktober 2005, 18:25, insgesamt 1-mal geändert.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hi t0m!t0m hat geschrieben:ich wollte fragen ob es eine Alternative zu cPickle gibt? Es sollte möglichst schnell sein und Dictionaries abspeichern/laden können.
Hier ein interessanter Auszug aus der Homepage von XmarshaL:
Code: Alles auswählen
Differences between XMarshaL and xml.marshal.generic
----------------------------------------------------
1) Speeeeed: the xml-string and substrings are constructed by string
interpolation where possible, not by joining string lists. This is
much faster for some types of objects like large sequences.
Dumping a large list object (x = range(100000)) with some different
methods shows the difference (my machine, Linux, Python 2.3b2):
Method : dump time, speed factor, string size
________________________________________________
marshal : 0.01 s, 0.01, 500005 bytes
cPickle : 0.09 s, 0.11, 788896 bytes
pickle : 0.93 s, 1.18, 788896 bytes
XMarshaL: 0.79 s, 1.00, 1589008 bytes
gnosis : 3.99 s, 5.05, 3989099 bytes
PyXML : 806.70 s, 1021.14, 1588951 bytes
Ok, there's no chance for XMarshaL to compare with marshal or
cPickle, but speed is comparable with pickle and even faster than
gnosis. And xml.marshal.generic seems to have a serious
performance problem!
mfg
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Ich weiss, "Warum"-Fragen sind böse... aber warum suchst Du eine Alternative?t0m hat geschrieben:ich wollte fragen ob es eine Alternative zu cPickle gibt? Es sollte möglichst schnell sein und Dictionaries abspeichern/laden können.
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
gibt:Leonidas hat geschrieben:Edit: Siehe auch die passende Kategorie (serialization+python) im Comprehensive Bookmark Archive
no results for this query
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Ich habe die URL nun oben korrigiert.jens hat geschrieben:gibt:Leonidas hat geschrieben:Edit: Siehe auch die passende Kategorie (serialization+python) im Comprehensive Bookmark Archiveno results for this query
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Danke für die Antworten!
Ich werde mir mal XMarshaL angucken
Nun ja, ich muss alle paar Minuten (oder sogar alle 30sek) ein relativ großes Dictionary abspeichern. Jetzt möchte ich natürlich das das so schnell wie möglich geht..BlackJack hat geschrieben:Ich weiss, "Warum"-Fragen sind böse... aber warum suchst Du eine Alternative?t0m hat geschrieben:ich wollte fragen ob es eine Alternative zu cPickle gibt? Es sollte möglichst schnell sein und Dictionaries abspeichern/laden können.
Ich werde mir mal XMarshaL angucken
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
In diesem Falle wäre es glaube ich sinnvoller ein ORM zu nutzen: Vorteil: du Arbeitest mit Python-Datentypen (Klassen). Weiterer Vorteil: die Daten werden automatisch in der Datenbank gespeichert.t0m hat geschrieben:Nun ja, ich muss alle paar Minuten (oder sogar alle 30sek) ein relativ großes Dictionary abspeichern. Jetzt möchte ich natürlich das das so schnell wie möglich geht..
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Object-Relational-Mapping ist (vereinfacht) eine Technik, die es ermöglicht, automatisch Objekte (Klassen) so zu plätten, dass man sie in relationalen Datenbanken speichern kann.t0m hat geschrieben:ORM? Was ist das?
SQLObject 0.7 Doku hat geschrieben:It allows you to translate RDBMS table rows into Python objects, and manipulate those objects to transparently manipulate the database.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Irgenwie glaube ich nicht so recht daran, dass so ein ORM wesentlich schneller ist als `pickle` da ein ORM grundsätzlich die gleiche Arbeit leisten muss plus Aufbereitung der Daten für die Datenbank und Übermittlung an selbige. An der Stelle "dump"t `pickle` die Daten einfach in eine Datei.
Hat sich durch Messen eigentlich überhaupt schon herausgestellt das `pickle` für die Aufgabe zu langsam ist? Oder ist das nur eine Vermutung?
Hat sich durch Messen eigentlich überhaupt schon herausgestellt das `pickle` für die Aufgabe zu langsam ist? Oder ist das nur eine Vermutung?
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Nein, ein ORM ist sicherlich nicht schneller als pickle.BlackJack hat geschrieben:Irgenwie glaube ich nicht so recht daran, dass so ein ORM wesentlich schneller ist als `pickle` da ein ORM grundsätzlich die gleiche Arbeit leisten muss plus Aufbereitung der Daten für die Datenbank und Übermittlung an selbige. An der Stelle "dump"t `pickle` die Daten einfach in eine Datei.
Jedoch kann man auf die Datenbank auch einfach aus anderen, nicht so tollen Programmiersprachen zugreifen, was bei pickle nicht so einfach ist. Dafür gibt es dann aber auch Alternativen wie XMarshaL, die die Klassen in XML Dateien dumpen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Er hat im ersten post gesagt, dass es moeglichst schnell sein soll - dass es schneller als cPickle sein muss habe ich dort nicht rausgelesen.BlackJack hat geschrieben:Aber schneller als `cPickle` war doch eine Anforderung.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice