Sugerencias de rendimiento
Siga estas sugerencias para mejorar el rendimiento cuando utilice XPath, XQuery y XSLT.
Idioma | Sugerencia |
---|---|
XPath | La utilización de // puede representar una operación cara. Si se especifica más la vía de acceso (a/b/c en lugar de a//c) se puede mejorar el rendimiento. Esto es especialmente importante cuando la vía de acceso comienza cerca de la raíz de un documento grande. |
La función last(), puesto que requiere una evaluación completa de la secuencia para contar los elementos, puede ser una operación cara. | |
Los predicados posicionales con valores constantes, como por ejemplo [3], suelen ser más eficaces que aquellos con valores que se computan o que se recuperan de variables. | |
XQuery | Considere la llamada al método registerImportedSchemas en la instancia XQueryExecutable si la consulta importa uno o varios esquemas y si la misma consulta se va a ejecutar más de una vez. Si no se llama a registerImportedSchemas, los esquemas importados se cargarán cada vez que se llame a uno de los métodos execute. De forma predeterminada, los esquemas importados sólo se pueden utilizar para validar árboles de resultados; pero llamar a este método tiene el mismo efecto que registrar esquemas con XFactory, lo que significa que se utilizarán para validar documentos de entrada. |
XSLT | Es más lento acceder a los parámetros que a las variables. Si no necesita indicar el valor del parámetro de forma externa, utilice una variable. |
La utilización de elementos xsl:key y de la función key() puede ser una forma eficiente de recuperar conjuntos de nodos. | |
La comparación de patrones y la asignación de plantillas de aplicación suele resultar más rápido que las sentencias xsl:if o xsl:when. | |
Los predicados posicionales en patrones de coincidencia normalmente son más caros. | |
En general, los patrones de coincidencia simple como, por ejemplo, "address", son menos caros a la hora de procesar que los más complejos, como por ejemplo "/purchaseorder/shipping/customer/postal/address". Saque partido del hecho de conocer la estructura de los documentos y el comportamiento de la hoja de estilo para evitar tener que realizar más especificaciones innecesarias. | |
Para algunos modelos de datos, se debe aplicar la operación xsl:skip-space durante la navegación por documentos en lugar de hacerlo durante la carga del documento. Esta acción puede añadir una sobrecarga del tiempo de ejecución. | |
Considere la llamada al método registerImportedSchemas en la instancia XSLTExecutable si la hoja de estilo importa uno o más esquemas y la misma hoja de estilo se ejecutará más de una vez. Si no se llama a registerImportedSchemas, los esquemas importados se cargarán cada vez que se llame a uno de los métodos execute. De forma predeterminada, los esquemas importados sólo se pueden utilizar para validar árboles de resultados; pero llamar a este método tiene el mismo efecto que registrar esquemas con XFactory, lo que significa que se utilizarán para validar documentos de entrada. | |
XPath, XQuery y XSLT | La descodificación y codificación son caras. Generalmente, las codificaciones UTF-8 y UTF-16 se pueden leer y grabar de forma más rápida que otras codificaciones. |