Warum Streaming?
Streaming kann aus verschiedenen Gründen bei der Verarbeitung von XML-Dateien notwendig sein. Es gibt drei Faktoren, die den Einsatz von Streaming erfordern.
- Dateigröße
- Art der Input-Datei
- Art der Output-Datei
Da bei der traditionellen Transformation von XML-Dateien die gesamte Datei geparst und somit in den Arbeitsspeicher geladen wird, wäre bei sehr großen XML-Dateien ein entsprechend großer Arbeitsspeicher notwendig. Zur effizienten Verarbeitung wird beim Parsen der 3- bis 10-fache Speicherplatz der XML-Datei im Arbeitsspeicher benötigt (Vgl. Michael Kay. Streaming in XSLT 2.1. in: XML Prague 2010 Conference Prodeedings. Februar 2010. XML Prague 2010. S. 4). Durch den Einsatz von Streaming können auch Dateien verarbeitet werden, die zu groß für den Arbeitsspeicher sind. Die XML-Datei wird sozusagen on the flight verarbeitet.
Manche Input-Dateien liegen nicht als fertige Komplettdatei vor, sondern sind selbst ein Stream. Hierzu gehören zum Beispiel laufend aktualisierte Wetterdaten, Logging-Daten oder die Liveberichterstattung während eines Fußballspiels. Durch die Verwendung von Streaming ist es für den Prozessor möglich, eine Ausgabe zu produzieren, bevor der gesamte Input eingelesen wurde. Durch die parallele Verarbeitung von Input und Output wird zudem die Latenz deutlich reduziert.
Nachteile von Streaming sind eine 1,2- bis 1,3-fache langsamere Verarbeitung (Vgl. Jakub Malý. Parallel XSLT Processing of Large Documents. in: XML Prague 2015 Conference Prodeedings. Februar 2015. XML Prague 2015. S. 15) als im traditionellen Modus sowie eine gewisse Restriktion der möglichen Anweisungen. Diese sind unter Streamability-Regeln genauer beschrieben.
Ab einer bestimmten Dateigröße oder wenn der Input nur als Stream vorliegt, ist Streaming allerdings die einzige Möglichkeit zur Transformation. Die Alternative wäre auf die Verarbeitung der Datei komplett zu verzichten.
<< zurück | vor >> |
Tipp der data2type-Redaktion: Zum Thema XSLT bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an: |