große XML häppchenweise einlesen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Dienstag 1. April 2008, 21:58

droptix hat geschrieben:Na, gehen wir mal davon aus, dass in <!-- BIG data --> wirklich zu große Daten stehen, also nehmen wir ruhig 10.000 bis 50.000 Zeilen an.

Und, ist es mit Minidom zu langsam für dich?
My god, it's full of CARs! | Leonidasvoice vs Modvoice
droptix
User
Beiträge: 521
Registriert: Donnerstag 13. Oktober 2005, 21:27

Beitragvon droptix » Dienstag 1. April 2008, 22:05

Nun ja, die Geschwindigkeit hab ich noch gar nicht gemessen, nur gefühlt dauert das schon sehr lange. Aber den Speicherverbrauch hab ich gemessen, und der explodiert mit minidom gewaltig. Eine XML-Datei mit gut 20.000 Zeichen ist so um die 1,5 MB groß. Beim Einlesen werden ca. 90 MB Arbeitsspeicher benötigt. Das ist recht heftig.
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Dienstag 1. April 2008, 22:27

Ok, das ist nun endlich mal etwas handfestes. Also kannst du mal das mit SAX implementieren und gucken, wie es im Vergleich dazu abschneidet.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
rezeptor
User
Beiträge: 8
Registriert: Dienstag 6. November 2007, 23:02

Beitragvon rezeptor » Donnerstag 3. April 2008, 08:22

Ich würde zu ElementTree greifen. Das Modul benutzt ja wie bereits gesagt Expat und da dieser stream-orientiert arbeitet, kannst du dir ElementTree ableiten und in die Feed-Methode entsprechende Funktionalitäten zur steuerung der zu parsenden Datenmenge einbauen. (Also bevor du den eigentlichen Feed-Call zur Basisklasse machst.)
hast du python in der tasche,hast du immer was zum nasche...
Benutzeravatar
nkoehring
User
Beiträge: 543
Registriert: Mittwoch 7. Februar 2007, 17:37
Wohnort: naehe Halle/Saale
Kontaktdaten:

Beitragvon nkoehring » Montag 7. April 2008, 22:21

@rezeptor: Hmm... das klingt ja nett, aber wie soll man das denn anstellen? Haettest du da ein kurzes Beispiel?

Wer ist online?

Mitglieder in diesem Forum: Google [Bot]