Compiler oder Interpreter auswählen

Für die Vorbereitung und Ausführung eines XQuery-Ausdrucks, eines XPath-Ausdrucks oder eines XSLT-Style-Sheets können Sie entweder den Compiler oder den Interpreter verwenden. Welche der beiden Optionen verwendet werden sollte, richtet sich in hohem Maße nach der Anwendung und hängt von verschiedenen Faktoren ab.

Informationen zu diesem Vorgang

In diesem Artikel geht es darum zu entscheiden, ob für die Vorbereitung und Ausführung des Ausdrucks, der Abfrage oder des Style-Sheets in der Anwendungslaufzeit der Compiler oder der Interpreter verwendet werden soll.

Ausdrücke, Abfragen und Style-Sheets können auch vorab erstellt (vorkompiliert) werden. Dies ist der effizienteste Weg, weil die Erstellung dann nicht in der Anwendungslaufzeit erfolgen muss. Die Vorkompilierung kann aber unter Umständen aber nicht für alle Anwendungen genutzt werden. Weitere Einzelheiten hierzu enthalten die Artikel zur Vorkompilierung.

Vorgehensweise

Verwenden Sie die Methode setUseCompiler(true) für den XStaticContext, wenn Sie sich für den Compiler entscheiden, und die Methode setUseCompiler(false), wenn der Interpreter verwendet werden soll.

Standardmäßig werden XQuery-Ausdrücke, XPath-Ausdrücke oder XSLT-Style-Sheets mit den Interpreter vorbereitet.

Das Erstellen eines kompilierten ausführbaren Objekts dauert länger als das Erstellen eines interpretierten ausführbaren Objekts. Dafür wird ein kompiliertes ausführbares Objekt generell schneller ausgeführt. Es gilt also, zwischen den Kosten für die Erstellung eines vorkompilierten ausführbaren Objekts und einer höheren Effizienz in der Ausführungszeit abzuwägen.
Tabelle 1. Unterschiede bei Verwendung des Compilers oder des Interpreters.

Berücksichtigen Sie die folgenden Faktoren, wenn Sie Ihre Entscheidung für den Compiler oder den Interpreter treffen.

Faktor Description
Anzahl der Eingabedokumente, für deren Verarbeitung das ausführbare Objekt verwendet wird Wenn das ausführbare Objekt nur für die Verarbeitung einiger weniger Dokumente genutzt wird, wird sich die zusätzlich erforderliche Zeit für die Erstellung eines kompilierten ausführbaren Objekts wahrscheinlich nicht lohnen, zumal sie nicht durch die höhere Effizienz des ausführbaren Objekts ausgeglichen werden kann. Werden viele Eingabedokumente mit dem ausführbaren Objekt verarbeitet, kann sich die zusätzliche Erstellungszeit bezahlt machen.
Größe der Eingabedokumente Die Verarbeitung größerer Eingabedokumente dauert länger. Es kann sich daher lohnen, die zusätzliche Zeit in die Erstellung eines kompilierten ausführbaren Objekts zu investieren, um ein effizienteres ausführbares Objekt für die Handhabung der größeren Dokumente zu erhalten.
Umfang des Ausdrucks, der Abfrage oder des Style-Sheets Die Erstellung eines umfangreichen Ausdrucks, einer umfangreichen Abfrage oder eines umfangreichen Style-Sheets dauert länger. Hier gilt es somit, zwischen Erstellungszeit und Ausführungszeit abzuwägen.

Beispiel

// Neue XFactory erstellen
XFactory factory = XFactory.newInstance();

// Neues XStaticContext-Objekt erstellen
XStaticContext staticContext = factory.newStaticContext();
 
// Compiler verwenden
sc.setUseCompiler(true);
 
// Interpreter verwenden
sc.setUseCompiler(false);

Symbol, das den Typ des Artikels anzeigt. Taskartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=txml_choosing
Dateiname:txml_choosing.html