2017-06-24 3 views
-1

Welche xslt Prozessor würden Sie vorschlagen, für xslt 1.0 und xslt 2.0 jeweils, in Bezug auf die Leistung? Angenommen, Sie haben eine riesige XML-Datei und möchten die Konvertierungszeit beschleunigen. Spielt die Sprache eine sehr wichtige Rolle? Zum Beispiel möchte ich eine Go-Sprache-Implementierung versuchen, wenn man eine solche Implementierung vorschlagen muss, oder ein c-Sprachprozessor?schnellste xslt 1.0, und xslt 2.0 Prozessoren in Bezug auf die Leistung

Um klar zu sein. Ich habe Sachen in beiden, xslt 1.0 und xslt 2.0 gemacht, also brauche ich eine Weise, den Prozess schneller auf jeder Spezifikation zu machen.

+0

P: Die Leistung eines Prozessors kann für ein Stylesheet gut sein und für eine andere Kombination aus Eingabe/Stylesheet schlecht sein, so dass Sie messen müssen. https://www.xml.com/articles/2017/01/26/revving-xslt-10-engines-are-they-all-same/ zum Beispiel ist ein Leistungsvergleich einiger Motoren mit dem Ziel des Vergleichs XSLT 1.0 Leistung, obwohl es dann voran geht und Saxon 9 verwendet, die ein XSLT 2.0 oder 3.0 Prozessor ist. Es hängt auch davon ab, auf welchen Prozessor Sie Zugriff haben, nicht alle Prozessoren sind auf allen Plattformen verfügbar und für einige müssen Sie eine kommerzielle Lizenz erwerben. –

Antwort

2

Die Implementierungssprache für den Prozessor ist kein sehr wichtiger Faktor. Sicher, verschiedene Sprachen stellen unterschiedliche Herausforderungen dar: Wenn Sie einen XSLT-Prozessor in C schreiben (oder in einer anderen Sprache ohne Garbage-Collection), müssen Sie viel Aufwand in die Speicherverwaltung investieren, aber das wirkt sich nachteilig auf den Aufwand aus als die Leistung, die es erreicht.

Leistung ist nicht eindimensional. Unterschiedliche Prozessoren werden abhängig vom aktuellen Stylesheet unterschiedlich miteinander verglichen. Außerdem hängt es davon ab, was Sie messen: Prozessor-Startzeit, Stylesheet-Kompilierzeit, Parsing-/Erstellungszeit des Quelldokuments, Singlethread-Leistung oder Multithread-Leistung. Es gibt keinen Ersatz dafür, dass Sie Ihre eigenen Messungen an Ihre spezielle Arbeitslast anpassen können.

Wenn die Leistung Ihrer Workload die Anforderungen nicht erfüllt, dann ist es eine der Maßnahmen, die Sie ergreifen können, um das Problem zu lösen, indem Sie sehen, wie es auf einem anderen XSLT-Prozessor läuft. Aber es gibt auch viele andere Maßnahmen, die Sie ergreifen können, und einige von ihnen können weniger störend sein. Bevor Sie einen anderen XSLT-Prozessor ausprobieren, stellen Sie sicher, dass die XSLT-Verarbeitung tatsächlich eine kritische Komponente Ihrer gesamten Systemleistung ist: Ich habe viele Fälle gesehen, in denen ich mich mit wahrgenommenen XSLT-Leistungsproblemen befasst habe auf die Untersuchung, dass die Probleme nichts mit XSLT-Verarbeitung zu tun haben. Und wo es XSLT-Verarbeitung ist, wird manchmal eine einfache Änderung an Ihrem XSLT-Code oder an der Art, wie Sie den XSLT-Prozessor ausführen, eine große Einsparung sein.

+0

"zu sehen, wie es auf einem anderen XSLT-Prozessor läuft, ist eine der Maßnahmen, die Sie ergreifen können, um das Problem zu lösen." Welchen Prozessor sollte ich versuchen, angesichts der Tatsache, dass dies der einzige fragliche Parameter ist? – dalu

+0

Wir wissen nicht, wo Sie anfangen und welche Plattformbeschränkungen Sie haben. Aber natürlich solltest du Saxon benutzen ;-) –

+0

ich bin auf einer Ubuntu 16.04 Maschine, jetzt benutze ich SAXON (Saxon-B) die Open Source Variante von Saxon für Releases bis einschließlich Version 9.1 – dalu