Problem mit eingebetteten Base64 Dateien in XML
am 12.07.2006 16:53:32 von office.mistelbacher
Hallo Zusammen!
Ich versuche mich seit 2 Wochen mit Perl und gleich auch mal mit dem Parsen
von XML (XML::Simple).
Bis jetzt gings ganz gut, nur habe ich mit einer großen XML-Datei ein
Problem.
Darin gibt es ein Feld, dass Base64 kodierte Dateien beinhaltet.
SUkqACVwAABK......
Das macht bei einer 1Mb großen Datei so etwa 19200 Zeilen im XML File.
Wenn ich jetzt im Perlscript die XML-Datei parse dauert das aber 3 Minuten.
use XML::Simple;
my $config = XMLin("mitdatei.xml");
Gibt es einen besseren Ansatz?
Danke
Markus
Re: Problem mit eingebetteten Base64 Dateien in XML
am 15.07.2006 17:07:35 von hjp-usenet2
On Wed, 12 Jul 2006 16:53:32 +0200, Markus M. wrote:
> Ich versuche mich seit 2 Wochen mit Perl und gleich auch mal mit dem Parsen
> von XML (XML::Simple).
> Bis jetzt gings ganz gut, nur habe ich mit einer großen XML-Datei ein
> Problem.
> Darin gibt es ein Feld, dass Base64 kodierte Dateien beinhaltet.
> SUkqACVwAABK......
>
> Das macht bei einer 1Mb großen Datei so etwa 19200 Zeilen im XML File.
> Wenn ich jetzt im Perlscript die XML-Datei parse dauert das aber 3 Minuten.
Welchen XML-Parser verwendest Du? XML::Simple kann verschiedene Parser
verwenden, und die unterscheiden sich teilweise recht deutlich in der
Performance.
hp
--
_ | Peter J. Holzer | > Wieso sollte man etwas erfinden was nicht
|_|_) | Sysadmin WSR | > ist?
| | | hjp@hjp.at | Was sonst wäre der Sinn des Erfindens?
__/ | http://www.hjp.at/ | -- P. Einstein u. V. Gringmuth in desd
Re: Problem mit eingebetteten Base64 Dateien in XML
am 17.07.2006 13:19:20 von office.mistelbacher
> Welchen XML-Parser verwendest Du? XML::Simple kann verschiedene Parser
> verwenden, und die unterscheiden sich teilweise recht deutlich in der
> Performance.
>
> hp
Tja, ich habe angefangen mit der Installation von expat (2.0.0), dann die
Perl-Module XML::Parser (2.34) und XML::Simple (nur 1.08 war lauffähig).
D.h. XML::Simple basiert auf XML::Parser und dieses verwendet expat.
Was sind hier die Alternativen?
Meine Perl-Version:
5.005_03 built for sun4-solaris 5.8.
Momentan suche ich mein Heil in der Progammierung eines c-Programmes unter
der Verwendung von expat.
Das ist zwar etwas komplexer, dafür bewege ich mich im Sekundenbereich.
lg
Markus
Re: Problem mit eingebetteten Base64 Dateien in XML
am 18.07.2006 00:02:29 von hjp-usenet2
On Mon, 17 Jul 2006 13:19:20 +0200, Markus M. wrote:
>> Welchen XML-Parser verwendest Du? XML::Simple kann verschiedene Parser
>> verwenden, und die unterscheiden sich teilweise recht deutlich in der
>> Performance.
>
> Tja, ich habe angefangen mit der Installation von expat (2.0.0), dann die
> Perl-Module XML::Parser (2.34) und XML::Simple (nur 1.08 war lauffähig).
> D.h. XML::Simple basiert auf XML::Parser und dieses verwendet expat.
> Was sind hier die Alternativen?
expat ist von der Performance her ok. libxml könnte noch etwas schneller
sein, aber viel gewinnt man damit vermutlich nicht. Ich hatte gehofft,
dass Du den Pureperl-Parser verwendest (der wirklich saulangsam ist),
aber in Deinem Fall liegt das Bottleneck offenbar wirklich in
XML::Simple und nicht im Parser.
> Meine Perl-Version:
> 5.005_03 built for sun4-solaris 5.8.
Ist es möglich, das upzugraden? 5.005 ist ziemlich alt. (nicht, dass das
was mit der Performance zu tun hätte)
> Momentan suche ich mein Heil in der Progammierung eines c-Programmes unter
> der Verwendung von expat.
> Das ist zwar etwas komplexer, dafür bewege ich mich im Sekundenbereich.
Möglicherweise würde es schon reichen, wenn Du XML::Parser direkt
verwendest statt XML::Simple.
Auf jeden Fall wäre es sinnvoll, das Programm zu profilen, um zu sehen,
wo die Rechenzeit wirklich verbraten wird.
hp
--
_ | Peter J. Holzer | > Wieso sollte man etwas erfinden was nicht
|_|_) | Sysadmin WSR | > ist?
| | | hjp@hjp.at | Was sonst wäre der Sinn des Erfindens?
__/ | http://www.hjp.at/ | -- P. Einstein u. V. Gringmuth in desd