Optimization 如何分析和优化XSLT?
我有一个在浏览器中查看XML文件的XSLT。XSLT编写得很简单,目前需要很长时间(几分钟)执行 我的XML文件大小适中(~1 MiB),同一文档中执行不同处理的其他XSLT执行得更快。所以我知道问题不在于XML的大小,而在于我的XSLT 如何分析和优化XSLTOptimization 如何分析和优化XSLT?,optimization,xslt,profiling,Optimization,Xslt,Profiling,我有一个在浏览器中查看XML文件的XSLT。XSLT编写得很简单,目前需要很长时间(几分钟)执行 我的XML文件大小适中(~1 MiB),同一文档中执行不同处理的其他XSLT执行得更快。所以我知道问题不在于XML的大小,而在于我的XSLT 如何分析和优化XSLT (在浏览器中执行复杂的XSLT是一个坏主意吗?我应该改为应用XSLT应用程序端吗?商业编辑器具有分析和调试XSLT文件的功能。它也是一个很好的XML编辑器。您使用的是哪个XSLT引擎?如果您使用的是.NET引擎和Visual Studi
(在浏览器中执行复杂的XSLT是一个坏主意吗?我应该改为应用XSLT应用程序端吗?商业编辑器具有分析和调试XSLT文件的功能。它也是一个很好的XML编辑器。您使用的是哪个XSLT引擎?如果您使用的是.NET引擎和Visual Studio,那么可以使用集成到Visual Studio中的 其他优秀的分析工具还有Altova和 如果您发布XSLT,就更容易告诉您可能的瓶颈在哪里。通常,使用诸如“//”、前面::*和后面::*之类的XPath表达式时要小心。更多规则和最佳实践:
“//项”
。例如,使用position()
解决分组问题跟随[-同级]
轴。这经常
表示具有n平方的算法
表演节点集()
扩展名
功能#PCDATA
元素的文本值,请使用
优先于
关于您在浏览器中使用XSLT的问题:我不建议您使用XSLT,因为首先,您不是独立于平台的(不是每个浏览器都支持XSLT,或者某些浏览器可能只支持性能较差的引擎),其次,您无法控制所用的引擎。我喜欢在基于Windows的机器上使用XSLT。它还内置了一个分析器。你可以。(扫描到5:45以了解有关探查器的更多信息)。这是一种商业产品。。。有一个时间试用期:)如果您提供了XSLT代码和XML文档来观察问题,我和其他人可以尝试提供帮助 这里有一些来自: 关于如何有效使用XSLT的八个技巧:
//item
”
。例如,通过使用position()
解决分组问题
n
平方性能的算法node-set()
扩展功能访问它
优先
到
我在浏览器中运行,所以我的XSLT引擎是Firefox、IE和Safari使用的任何东西。我知道每个引擎在使用相同的XSLT时会有不同的行为,因此分析一个特定的引擎可能无法反映所有3个方面。发布有问题的XSLT,我可能会帮助您找到有问题的行。正如divo所说:“发布有问题的XSLT,我可能会帮助您找到有问题的行”:)我使用了xsl:key,这带来了巨大的不同。现在小样本的速度提高了10倍,而大样本的速度差异更大。在我尝试其他一些优化之前,我将实现我的其他功能。微软有一个独立的分析器。它被称为“XsltMajic分析器工具”。在这个知识库中有一个链接:如果您提供了XSLT代码和观察问题的XML文档,我和其他人可以尝试提供帮助。注意:XSLT分析和(更好的)调试已添加到Visual Studio 2010中。当然,这仍然是XSLT1.0。