Что вы включаете в свои 10 секунд?Включает ли это компиляцию таблицы стилей и / или разбор / загрузку исходного документа, или это просто время выполнения XSLT?
Я бы ожидал, что построение представления дерева в памяти вашего входного файла 900 Мб - это то, чтозанимая большую часть времени (10 секунд было бы довольно быстро для этой операции).Если вам нужно многократно запускать таблицу стилей, то лучшим способом повышения производительности будет создание исходного дерева только один раз и его повторное использование.Но тогда вы не сможете запускать напрямую из командной строки.
В принципе вы можете ускорить этот вид таблицы стилей с помощью клавиш:
<xsl:key name="k" match="row" use="@Id"/>
<xsl:template match="/rowdata">
<xsl:value-of select="key('k', 10000)/@data"/>
</xsl:template>
Однако это только происходитработать, если вы можете убедиться, что индекс ключа создается только один раз, а затем используется повторно.На данном этапе я не могу рассказать вам, как это может работать в xsltproc, потому что все зависит от процессора.
Вы можете прекратить поиск после первого попадания, просто добавив предикат [1]
.Но вы ищете большего, чем это.