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