Choix entre le compilateur et l'interpréteur
Vous pouvez utiliser au choix le compilateur ou l'interpréteur pour préparer et exécuter une expression XQuery, une expression XPath ou une feuille de style XSLT. Le choix entre ces deux outils dépend de l'application et de plusieurs autres facteurs.
Pourquoi et quand exécuter cette tâche
Cet article traite du choix que vous devez opérer entre le compilateur et l'interpréteur lorsque vous préparez une expression, une requête ou une feuille de style avant l'exécution d'une application.
Les expressions, les requêtes et les feuilles de style peuvent se préparer à l'avance (être précompilées). C'est l'option la plus efficace car la préparation est faite avant l'exécution de l'application. Cependant, la précompilation n'est pas un processus applicable à toutes les applications. Pour plus d'informations, voir les articles consacrés à la précompilation.
Procédure
Le choix par défaut est d'utiliser l'interpréteur pour préparer une expression XQuery, une expression XPath ou une feuille de style XSLT.
Facteur | Description |
---|---|
Nombre de documents d'entrée traités par l'exécutable | Si l'exécutable ne doit traiter que quelques documents d'entrée, le temps requis pour le compiler peut être jugé excessif car le gain d'efficacité à l'exécution risque de ne pas compenser le temps de la compilation. En revanche, si l'exécutable doit traiter de nombreux documents d'entrée, le temps requis pour le compiler peut être compensé. |
Taille des documents d'entrée | Le traitement des documents d'entrée volumineux demande plus de temps. Dans ce cas, le temps requis pour créer un exécutable compilé permettra d'obtenir un objet exécutable plus performant pour traiter des documents plus importants. |
Taille de l'expression, de la requête ou de la feuille de style | Préparer une expression, une requête ou une feuille de style complexe demande plus de temps, ce qui affecte le rapport entre le temps de préparation et le temps d'exécution. |
Exemple
// Créer une instance XFactory
XFactory factory = XFactory.newInstance();
// Créer une instance XStaticContext
XStaticContext staticContext = factory.newStaticContext();
//Utiliser le compilateur
sc.setUseCompiler(true);
//Utiliser l'interpréteur
sc.setUseCompiler(false);