Tipps zur Leistung
Verwenden Sie die folgenden Tipps, um die Leistung bei der Verwendung von XPath, XQuery und XSLT zu verbessern.
Sprache | Tipp |
---|---|
XPath | Die Verwendung von // kann eine kostenintensive Operation sein. Die Verwendung eines expliziteren Pfads (a/b/c an Stelle von a//c) kann die Leistung verbessern. Dies ist insbesondere dann wichtig, wenn der Pfad mit oder in der Nähe des Stammelements eines großen Dokuments beginnt. |
Die Funktion "last()" kann eine kostenintensive Operation sein, weil sie eine vollständige Auswertung der Sequenz für die Zählung der Elemente erfordert. | |
Positionsgebundene Prädikate mit konstanten Werten wie [3] sind gewöhnlich effizienter als Prädikate mit Werten, die berechnet oder aus Variablen abgerufen werden. | |
XQuery | Überlegen Sie, ob Sie nicht die Methode registerImportedSchemas für die XQueryExecutable-Instanz ausführen sollten, wenn die Abfrage ein oder mehrere Schemas importiert und mehrmals ausgeführt wird. Wird registerImportedSchemas nicht aufgerufen, werden die importierten Schemas bei jedem Aufruf einer execute-Methode geladen. Standardmäßig können importierte Schemas nur zur Validierung von Ergebnisbaumstrukturen verwendet werden. Wird diese Methode jedoch aufgerufen, hat das denselben Effekt wie die Registrierung der Schemas bei der XFactory, d. h., die Schemas werden zur Validierung von Eingabedokumenten verwendet. |
XSLT | Der Zugriff auf Parameter ist langsamer als der Zugriff auf Variablen. Wenn Sie den Wert des Parameters nicht extern bereitstellen müssen, verwenden Sie eine Variable. |
Die Verwendung von xsl:key-Elementen und der Funktion "key()" kann eine effiziente Methode für das Abrufen von Knotengruppen sein. | |
Musterübereinstimmung und Zuteilungen durch Anwendung von Schablonen sind gewöhnlich schneller als die Anweisungen "xsl:if" und "xsl:when". | |
Die Verwendung positionsgebundener Prädikate in Übereinstimmungsmustern ist gewöhnlich kostenintensiv. | |
Im Allgemeinen ist die Verarbeitung einfacher Übereinstimmungsmuster wie "address" weniger kostenintensiv als die Verarbeitung komplexer Übereinstimmungsmuster wie "/purchaseorder/shipping/customer/postal/address". Nutzen Sie Ihre Kenntnisse der Dokumentstruktur und des Verhaltens Ihres Style-Sheets, um unnötige Angaben zu vermeiden. | |
Bei einigen Datenmodellen muss die Operation "xsl:skip-space" während der Dokumentnavigation und nicht beim Laden des Dokuments angewendet werden. Dies kann zu einer längeren Ausführungszeit führen. | |
Überlegen Sie, ob Sie nicht die Methode registerImportedSchemas für die XSLTExecutable-Instanz ausführen sollten, wenn die das Style-Sheet ein oder mehrere Schemas importiert und mehrmals ausgeführt wird. Wird registerImportedSchemas nicht aufgerufen, werden die importierten Schemas bei jedem Aufruf einer execute-Methode geladen. Standardmäßig können importierte Schemas nur zur Validierung von Ergebnisbaumstrukturen verwendet werden. Wird diese Methode jedoch aufgerufen, hat das denselben Effekt wie die Registrierung der Schemas bei der XFactory, d. h., die Schemas werden zur Validierung von Eingabedokumenten verwendet. | |
XPath, XQuery und XSLT | Decodierung und Codierung sind kostenintensiv. Im Allgemeinen können die Codierungen UTF-8 und UTF-16 schneller gelesen und geschrieben werden als andere Codierungen. |