Pregunta

Haga que alguien utiliza el functoid máximo acumulado y se dio cuenta de los problemas de rendimiento?

Extracto
Si se quiere asignar el valor máximo de un campo se puede utilizar el máximo acumulado functoid.

Problema:
Después de haber utilizado durante un tiempo nos dimos cuenta de un rendimiento degradado en archivos más grandes.

El examen de la XSLT uno se da cuenta que el cálculo se hace máximo para cada registro bucle ...

Se puede mover el cálculo para el gran padre, y señalar el nuevo XSLT en la ruta de XSL personalizado, pero me gusta mucho para mantener la posibilidad de mapear en la herramienta de mapeo.

¿Alguna sugerencia?

Saludos cordiales
Martin Llevar

http://martinbring.blogspot.com

¿Fue útil?

Solución

Al eliminar el máximo acumulado y la adición de 3 functoids de secuencias de comandos, haciendo el cálculo de otra manera, el problema se resuelve. tiempo Mapping disminuido por un factor de 40.

11 Mb, 10 000 filas, se asignan previamente en 200 minutos ahora está asignada en 5 minutos.

Solución
Una functoid scripting, "Plantilla Call Inline XSLT" sin entrada o salida, que contiene la porción max () de la biblioteca de EXSLT biblioteca matemática encontrar aquí . En lugar de utilizar toda la biblioteca que descomprimió el archivo y "extraer" el máximo () plantilla.

 <xsl:template name="GetMax">
   <xsl:param name="nodes" /> 

    <xsl:choose>
      <xsl:when test="not($nodes)">NaN</xsl:when> 
      <xsl:otherwise>
        <xsl:for-each select="$nodes">
          <xsl:sort data-type="number" order="descending" /> 
          <xsl:if test="position() = 1">
          <xsl:value-of select="number(.)" /> 
        </xsl:if>
       </xsl:for-each>
     </xsl:otherwise>
   </xsl:choose>
 </xsl:template>

Una functoid scripting, "Plantilla Call Inline XSLT" sin entrada o salida, que contiene una variable que seleccionar puntos de atributo en la plantilla con el nodo establecido para calcular

<xsl:variable name="var:MaxValueDate">
    <xsl:call-template name ="GetMax">
            <xsl:with-param name ="nodes" select="Root//Parent/ValueToCalculate" />
    </xsl:call-template>
</xsl:variable>  

Una functoid scripting, "Inline XSLT" con una salida, utilizando la variable para poblar un elemento de salida con su valor.

<OutputElement>
        <xsl:value-of select="$var:MaxValueDate" />
</OutputElement>

Voila!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top