Удалив кумулятивный максимум и добавив 3 скриптообразных функтоида, выполнив вычисления другим способом, проблема будет решена. Время отображения уменьшилось в 40 раз.
11 Мб, 10 000 строк, ранее отображались за 200 минут, теперь отображаются через 5 минут.
Решение
Один скриптовый функтоид, «Шаблон вызова встроенного XSLT» без ввода или вывода, содержащий часть max () библиотеки из EXSLT Здесь найдена библиотека Math . Вместо использования всей библиотеки я разархивировал файл и "извлек" шаблон max ().
<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>
Один скриптовый функтоид, «Шаблон вызова Inline XSLT» без ввода или вывода, содержащий переменную, которая выбирает точки атрибута в шаблоне с узлом, установленным для вычисления
<xsl:variable name="var:MaxValueDate">
<xsl:call-template name ="GetMax">
<xsl:with-param name ="nodes" select="Root//Parent/ValueToCalculate" />
</xsl:call-template>
</xsl:variable>
Один скриптовый функтоид "Inline XSLT" с одним выходом, использующий переменную для заполнения элемента вывода его значением.
<OutputElement>
<xsl:value-of select="$var:MaxValueDate" />
</OutputElement>
Voila!