[Talk-de] PERL REGEX?

Jacques_N jacques.nietsch at gmx.de
Do Okt 16 16:52:42 UTC 2008


Am 16.10.2008, 14:10 Uhr, schrieb Tobias Wendorff  
<tobias.wendorff at uni-dortmund.de>:

> Jacques Nietsch schrieb:
>> Warum benutzt hier eigendlich keiner XML::Parser zum Parsen vom osm
>> Dateien?
>
> Frage war zwar nicht an mich, aber:
>
> Ich habe mit XML-Parsern immer schlechte Erfahrungen gemacht.
> Manche, wie XML Starlet, lesen erst die ganze XML-Datei ein
> und erzeugen das Inhaltsverzeichnis.

Ich sprach hier nicht von einem eigenständigen XML Parser, sondern von  
einem Perl Modul.
'XML::Parser' ist ein SAX Parser, also hält er nur den aktuellen Node im  
Speicher.
Nebenbei dieser Parser ist von Larry Wall geschrieben, dem Erfinder von  
Perl, das
sollte für eine gewisse Qualität bürgen ;-)

> Daher gehe ich Zeile für Zeile (im Stream) vor und arbeite
> rekursiv. Ich habe dadurch massive Verbesserungen in
> Performance und Geschwindigkeit bemerkt.
> Auch sinnvoll ist es, die OSM-Datei vorher in den Speicher
> zu laden und dann davon zu arbeiten, so "blinkt" die
> Festplatte nicht immer auf.

Das Beispielscript erzeugt eine Userliste, mit der Anzahl der Objekte nach  
Namen sortiert
in ca. 8 Sekunden aus einer 39 MB großen OSM Datei (XP 1GB 3GHz).
Die Festplatte blinkt dabei nicht viel mehr als sonst.

Was ich mit diesem Posting eigendlich sagen wollte: man muß nicht immer  
das Rad neu erfinden,
es gibt Leute, die das schon gemacht haben und oft auch viel besser als  
man es selbst könnte.

Jacques





Mehr Informationen über die Mailingliste Talk-de