Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#185

Re: himXML (gesprochen himix ML)

  Alt 30. Nov 2009, 09:16
Daß diese schneller sind, stimmt.
Ist auch in meinem Testprogramm (himXML\demos\CheckLibs.dpr) erkennbar,
allerdings solltest du mal sehn, wie diese beiden Libs seit D2009 reagieren
(da sind/waren dann erstmal Unmassen an Compilerwarungen).

Es ist schön, daß SimpleXML auf D2009 portiert hast.
Hast du dieses komplett auf Unicode umgestellt oder nur die Schnittstellen?
1. dann kommt es jetzt wohl nur noch mit Unicode-XML-Dateien klar
2. dann kommt es nur mit Ansi-XML-Dateien klar

Das normale SimpleXML kann im Unicode-Modus eigentlich nur Unicode-Dateien verarbeiten
und ansonsten nur Ansi-Dateien, wobei man da Extern für die (De)Codierung (in den AnsiStrings) sorgen muß.
Also praktisch was es ursprünglich schon unicodetauglich, aber es funktionierte nicht so richtig.

Du kannst aber gern mal die Unicode-Versionmit hochladen. Es gibt bestimmt welche, die sich darüber freuen würden.

Der Overhead bei mir kommt vorallem von der entsprechenden Dekodierung, da die Dateien auch unterschiedlich kodiert sein können, was diese Libs garnicht oder nur teilweise beachten.
Abgesehn davon laden diese die Dateien komplett in den RAM, bevor sie parsen.
himXML ließt die Dateien "nur" stückchenweise ein, welches natürlich auch noch ein bissl bremst, aber dafür Speicher spart und der Parser selber kommt auch mit größeren Dateien von mehrere Terabyte locker klar.
Versuch es also auch mal mit größeren Dateien.
Zitat:
um Faktor 5 schneller
Nja, himXML war auch schonmal etwas schneller, aber ein größerer Funktionsumfang ist da schon etwas hinderlich.
Aber im Vergleich mit MSXML sind diese Libs so oder so alle extrem flott.

Ein grundsätzliches Problem, welches es mit vielen dieser kleinen Libs gibt, daß sie seit vielen Jahren nicht mehr weiterentwickelt/gewartet werden.
So darf/muß man sich dann selber damit rumschlagen und es erstmal zum Laufen bekommen.
Ich hab jetzt schon versucht es halbwegs zukunftssicher zu gestalten.
So mußte nur ein kleiner Denkfehler (2 Codestellen) behoben werden und es lief unter D2010 und in den nächsten Delphi-Versionen rechne ich (hoffentlich) mit noch weniger Problemen.

PS: laut der NativeXML-Webseite schaft dieses ~1Mb/sec ... ich hab grad 'ne kleine 230 MB XML-Datei in etwa 25 Sekunden in mein himXML eingelesen, das macht dann 9 MB/s (mit D7 kompilert geht's noch schneller).
(gut, mein Rechner ist gut doppelt so schnell, wie deren 1.5GHz P3-Testrechner, also sagen wir mal ~2 MB/s)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat