Am Freitag, den 09.05.2008, 13:56 +0200 schrieb Jens Puruckherr:
Hallo,
einer kleinen armen Schnittstelle wird über die Jahre immer mehr Last aufgebürded. Mittlerweile bekommt Sie XMLs zum verdauen vorgesetzt, die schon mal an die 60MB gross sind. Mittels libxml und libxslt wird das Ganze unter Perl verarbeitet und in kleinen überschaubaren Häppchen an die Datenbank einer Web-Applikation verfüttert. Prinzipiell funktioniert das auch prima, allerdings der Speicherhunger der XSLT-Transformation wächst proportional zur Dateigrösse
DOM? Kann man das evtl. auf SAX umstellen? JFTR: Es gibt da ein IMHO kleines aber feines Buch: Perl & XML (O'Reilly, auch bei der SLUB erhältlich), das hier beim Optimieren und Überblicken der Perl-basierten Software-Lösungen helfen könnte.
des XML und macht mir langsam Sorgen. Inkl. Footprint konsumiert der Prozess ein schlappes GB RAM.
Ich will das gerne optimieren - zumal abzusehen ist, dass der Datenumfang noch zunimmt. Dabei gehe ich von 2 Ansätzen aus:
- libxml/xslt sind evtl. nicht optimal für derartige Datenmengen
ausgelegt. Welche Perl-tauglichen Alternativen gibt es?
Einige. S.o. Es gab auch mal einen kurzen Artikel von Mike Schilli, in dem er für das Linux-Magazin unterschiedliche Parser vorgestellt hat. Dann gibt es eine sehr umfangreiche FAQ auf http://perl-xml.sourceforge.net/faq/. Da wird auch das Problem sehr großer Dateien angesprochen.
- Das Stylesheet selber mag auch nicht von des Virtuosen Hand
stammen. (Wie) kann kann man sowas profilen?
Zum debuggen im FOSS-Bereich kenne ich nur xsltdbg mit QT-GUI (vom KDE-Projekt gepflegt). War das letzte Mal aber eher buggy (Speicherzrgriffsfehler beim Testen des Beispiels). Kommerzielle Software mag hier besser sein.
MfG Daniel