x

Re: SimpleXMLElement::xpath - Daten einer OSM-Abfrage behandeln


Geschrieben von kkulach (Gast) am 13. September 2015 16:40:20: [flux]

Als Antwort auf: SimpleXMLElement::xpath - Daten einer OSM-Abfrage behandeln geschrieben von tagtheworld (Gast) am 13. September 2015 09:24:

Huhuuuu,

Wenn du bei XML bleiben willst, ein kleiner Hinweis / Tipp :

Das Problem bei simplexml ist, dass du schnell an die Speichergrenze stößt, die dem PHP Interpreter zur Verfügung steht. Bis zu einem gewissen Grad kann man da nachhelfen, aber nicht unendlich.

Bei einfacheren Abfragen gegen Overpass ist das sicher in Ordnung.

Sobald es aber mehr Daten werden (Ob Overpass oder direkt aus einem OSM - File), kann entweder der Speicher knapp oder die Performance grauenhaft werden - da das gesammte XML bei simplexml_load_* geparst und als Objekt im Speicher angelegt wird. Erlaubt zwar den einfachen Zugriff, verbraucht aber mehr Ressourcen.

Du solltest vielleicht darüber nachdenken, einen SAX - Parser zu verwenden, auch wenn du ihn jetzt noch nicht unbedingt brauchst - Wenn dein Projekt wächst, bist du für alles gewappnet 🙂 .

Ich habe für das Skript, welches die POIs für poiowl.de filtert, auch einen verwendet. Alles übrigens auf einem Raspberry Pi, der Speicherverbrauch vom SAX Parser kann sich sehen lassen (Obschon es nur ein einfacher Anwendungsfall ist, aber ich verarbeite das OSM - File pro Land damit) ! 🙂

Viele Grüße!