какой движок XSLT вы используете? Если вы используете .NET engine и Visual Studio, вы можете использовать XSLT profiler , интегрированный в Visual Studio, что очень полезно.
Другими отличными инструментами профилирования являются XML Spy * Altova и Oxygen .
Если вы опубликуете свой XSLT, вам будет легче сказать, где возможны узкие места. В общем, будьте осторожны с выражениями XPath, такими как «//», предшествующими :: * и следующими :: *. Еще несколько правил и рекомендаций:
- Избегайте повторного использования
"//item"
.
- Не оценивайте один и тот же набор узлов более одного раза; сохранить его в переменной.
- Избегайте
<xsl:number>
, если можете. Например, с помощью position ().
- Используйте
<xsl:key>
, например, для решения проблем группировки.
- Избегайте сложных шаблонов в шаблонных правилах. Вместо этого используйте
в рамках правила.
- Будьте осторожны при использовании
preceding[-sibling]
или
following[-sibling]
осей. Это часто
указывает алгоритм с n-квадратом
производительность.
- Не сортируйте один и тот же набор узлов более одного раза. При необходимости сохраните его
в результате фрагмент дерева и доступ
это с использованием расширения
node-set()
функция.
- Чтобы вывести текстовое значение простого элемента
#PCDATA
, используйте
<xsl:value-of>
в предпочтении
<xsl:apply-templates>
.
(из http://www.dpawson.co.uk/xsl/sect4/N9883.html#d15756e150)
Следование этим правилам обычно приводит к очень эффективному XSLT, и вам, возможно, вообще не понадобится использовать профилировщик.
Относительно вашего вопроса о XSLT в браузере: я бы не рекомендовал его, потому что, во-первых, вы не независимы от платформы (не каждый браузер может поддерживать его, или некоторые браузеры могут поддерживать его только с плохо работающим движком), а во-вторых, вы можете ' t управлять использованным двигателем.