Suche schnelle XSD Validierung für kleine XML Dateien
-
Hallo,
ich muss viele relativ kleine XML Dateien (weniger als 30 Zeilen) gegen eine XSD Datei validieren und das so schnell wie möglich. Im Moment wird MSXML 6.0 verwendet. Damit hab ich aber das Problem, dass die Validierung zwischen 30 und 120ms dauert, was mir eigentlich viel zu lang ist und dazu kommt dass die Dauer sehr stark schwankt selbst wenn es immer dieselbe Datei ist.
Google hat mir viele Stichworte gebracht, aber zur Performance war nicht viel zu finden.
Hat jemand Erfahrungen mit Xerces2 oder anderen XML Bibliotheken gemacht und kann mir sagen welches schneller ist als MSXML?
-
Der Flaschenhals wird mehr das Dateisystem als der Parser an sich sein.
Gruß
-
Die XMLs krieg ich per TCP/IP Sockterverbindung. Sie werden zwar auf Platte in eine Logdatei geschrieben, aber dabei (ohne Validierung) hab ich eine sehr konstante Verarbeitungszeit ohne große Streuungen. Wenn ich die XSD Validierung aber einschalte, gehts total auseinander. Die xsd wird einmal bei Programmstart eingelesen und dann im Speicher gehalten. Wurde mir zumindest gesagt, ich habs nur so übernommen. Es muss an der Validierung liegen.
-
Ich würde folgendes prüfen (mit einem profiler)
Wie ist das Zeitverhalten an der TCP Verbindung. Kommen die Daten regelmässig?
Wie ist das Zeitverhalten beim Logging
Wie ist das Zeitverhalten bei der ValidierungDann kannst Du mal prüfen:
Nutzt das System mehrere Threads? Wenn die Validierung länger dauert als das Empfangen via TCP kannst Du mit einem Threadpool arbeiten. Gleiches gilt fürs Logging. Da tuts aber ein separater über eine Queue mit dem Rest verbunderer Thread.