Am 16.10.2008, 14:10 Uhr, schrieb Tobias Wendorff
<[EMAIL PROTECTED]>:
> 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
___
Talk-de mailing list
Talk-de@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-de