Delphi-PRAXiS
Seite 5 von 6   « Erste     345 6      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Delphi Schnelle XML Lib für große Dateien gesucht (https://www.delphipraxis.net/132530-schnelle-xml-lib-fuer-grosse-dateien-gesucht.html)

pertzschc 7. Okt 2009 16:06

Re: Schnelle XML Lib für große Dateien gesucht
 
Zitat:

Zitat von Daniel
Falls Du auf Unicode verzichten kannst, kann ich Dir diese Komponente empfehlen:
http://www.destructor.de/xmlparser/index.htm
Ist ein SAX-Parser und ziemlich flott obendrein.

Hallo Daniel,

habe mir Deine Empfehlung mal angeschaut und programmiertechnisch entspricht es genau den Anforderungen.
Ein Problem stellt jedoch bei großen Dateien (ca. 1GB) das komplette Laden des XML Files in den Speicher dar.
Gibt es da noch andere Komponenten oder eine Lösung für diese Komponente?

Danke+Gruß,
Christoph

himitsu 7. Okt 2009 16:13

Re: Schnelle XML Lib für große Dateien gesucht
 
Ein SAX-Parser sollte die Datei aber nicht komplett in den RAM laden :gruebel: ,
weswegen ja dort die Dateigröße egal wäre.


Mein kleiner SAX-Parser ist in der aktuellen Version nicht lauffähig (hab da noch nicht alles umgestellt), aber der grundlegende Parser (ohne jeglichen Komfort) würde noch gehn, oder halt der alte Parser, welcher aber 'ne winzigkleine Macke in der Indizierung hat (er läuft, zählt aber nicht so, wie ich es will)
hab das Delphi 7 grad gesehn

pertzschc 7. Okt 2009 16:50

Re: Schnelle XML Lib für große Dateien gesucht
 
Zitat:

Zitat von himitsu
Ein SAX-Parser sollte die Datei aber nicht komplett in den RAM laden :gruebel: ,
weswegen ja dort die Dateigröße egal wäre.

Wie Daniel schrieb: es soll ein SAX Parser sein, lädt jedoch komplett das Files ins RAM.

Gruß,
Christoph

himitsu 7. Okt 2009 17:08

Re: Schnelle XML Lib für große Dateien gesucht
 
OK, dann ist das aber kein SAX-Parser in diesem Sinne ... außer daß er vielleicht von einem Speicherblock aus parst :wall:

[add]
hab grad mal dort reingesehn ...

Man kann es vergessen diesen als "speichersparenden" SAX-Parser einzusetzen, da man erstmal das komplette Speichermanagement umstellen müßte.

Es wird in LoadFromFile alles in den RAM geladen und erst dann geparst ... also als 700 MB bis 1 GB ist da definitiv Schluß.

sh17 9. Okt 2009 11:43

Re: Schnelle XML Lib für große Dateien gesucht
 
Also ich nutze schon sehr lange SAXforPascal und bin sehr zufrieden. Hab letztens erst die aktuellste LIBExpat eingebunden.

Hau mal einen Link auf so ne XML-Datei hier rein. Dann scanne ich das Teil spasseshalber mal durch.

Sven

himitsu 9. Okt 2009 13:37

Re: Schnelle XML Lib für große Dateien gesucht
 
http://download.geofabrik.de/osm/europe/

Belgien hab ich da und es ist entpackt 223 MB klein
als .bz2 gepackt ist die OSM auf'm Server nur 28 MB

die alps.osm.bz2 ist da schon 395 MB
und das dürfte entpackt doch 'ne stattliche Datei werden :nerd: (vielleicht 2,5-3 GB)

[info] die .OSM sind im XML-Format

[add]
coooool, aus 4.5 GB .bz2 bekommt man doch bestimmt 'ne knuffige .osm von mindestens 30 GB

Mithrandir 9. Okt 2009 13:41

Re: Schnelle XML Lib für große Dateien gesucht
 
Um den Parser mal richtig bluten zu lassen ( :twisted: ), würde sich auch Nord-Amerika sehr gut eignen (Vorsicht, der Download ist 4,5 GB groß, entpackt dürfte es nochmal deutlich größer sein. ;) )

sh17 9. Okt 2009 13:59

Re: Schnelle XML Lib für große Dateien gesucht
 
ALso nur das Scannen von Belgien hat auf meiner lahmen Möhre von 2004 30 Sekunden gedauert. Ich nutze allerdings die UTF-16-Variante von LIBExpat. Die Datei ist ja nur UTF-8. Wenn man da Ansi-Variante nimmt, bringts vielleicht auch nochwas.

Alps läd noch (nebenbei)

Bei Interesse....
Sven

himitsu 9. Okt 2009 14:07

Re: Schnelle XML Lib für große Dateien gesucht
 
Belgien läd bei mir und meinem DOM-Parser in 27 Sekunden,
also wird der dahinterliegende SAX-Parser etwas flotter sein :stupid:
(Demo_Tree2.exe)

sh17 9. Okt 2009 14:51

Re: Schnelle XML Lib für große Dateien gesucht
 
So, hab jetzt extra die Ansi-Version rausgekramt

Aus Delphi heraus mit Debugger

Belgien 323 MB 22 Sekunden

Alps 5,15 GB 5 Minuten 40 Sekunden

Athlon XP 3200+ 2.20 Ghz von 2004
Speicherverbrauch vernachläßigbar - Exe hang bei 3.1 MB - Ist ja auch SAX


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:02 Uhr.
Seite 5 von 6   « Erste     345 6      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz