Hallo,

Florian Lohoff wrote:
> On Fri, Jun 11, 2010 at 08:53:00PM +0200, Claus Färber wrote:
>> Ansonsten nimm einen echten XML-Parser wie XML::Parser. Den gibt es  
>> fertig auf CPAN und ist oft eh schon installiert.
> 
> Der punkt ist das fast alle scripte die OSM daten weiterverarbeiten
> keinen wirklichen XML parser nehmen sondern meist nur mit perl
> dahingebastelte sachen die exakt fuer dieses format passen. Dazu kommt
> das die OSM Daten auch sicherlich nicht mit beliebigem inhalt gefuellt
> sein koennen weil defakto nur eine datenbank gedumped wird deren format
> reichlich steif ist.

Richtig. Ein guter Hacker weiss eben, wann er welche Technik am besten 
einsetzt - und gerade in Perl ist das Parsen mit Regex gern mal um den 
Faktor 10 schneller. Wenn ich also eh weiss, dass ich nur Planetfiles 
verarbeiten will, ist ein XML-Parser oft Overkill. (Insbesondere kann 
man beim Parsen von Hand solche Spielchen machen wie mit seek() und 
binaerer Suche innerhalb von 1 Sekunde an den Anfang der <way>-Sektion 
zu springen, wenn man die zuerst einlesen will, statt erstmal 100 GB 
Nodes zu parsen und dann wegzuwerfen.) Andererseits muss man sich im 
Klaren sein, dass man irgendwelche seltsamen UTF8-Spaesse o.ae. oder gar 
ein von Drittprogrammen ausgegebenes, erweitertes XML eben nicht 
unbedingt erwischt.

> Ach ja - und wir koennen ja nochmal ein "libxml" vs "handcraftet" shootout
> fuer das planet file machen ;)

http://lists.openstreetmap.org/pipermail/dev/2009-November/017811.html

> Im moment spiele ich ein wenig mit parallelen libxml parsern rum um
> das planet in endlicher zeit zu lesen und in space optimized abzuspeichern
> bzw im speicher zu halten (Koennte ab 16GB gehen) ...

Ich fand dies hier spannend (ueber ein neues Binaerformat):

http://lists.openstreetmap.org/pipermail/dev/2010-April/019370.html

"an entire planet, including all metadata, can be read in about 12 
minutes and written in about 50 minutes on a 3 year old dual-core machine"

Bye
Frederik

-- 
Frederik Ramm  ##  eMail frede...@remote.org  ##  N49°00'09" E008°23'33"

_______________________________________________
Talk-de mailing list
Talk-de@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-de

Antwort per Email an