【发布时间】:2015-07-01 14:03:15
【问题描述】:
设置: Apache、Xalan 2.7.1、xslt 1.0 输入: 3 个文件 xml aprox. 750mb
给定一个由其名称调用的template with param,通过参数传递当前上下文或使用模板内部的current() 函数是否会提高性能?
<xsl:call-template name="one">
<xsl:with-param name="context" select = "." />
</xsl:call-template>
<!-- OR -->
<xsl:call-template name="two"/>
<xsl:template name="one">
<xsl:param name = "context" />
<xsl:value-of select="$context/something"/>
</xsl:template>
<xsl:template name="two">
<xsl:value-of select="current()/somthing"/>
</xsl:template>
【问题讨论】:
-
如果您有兴趣回答性能问题,那么您需要使用特定的 XSLT 处理器并测量性能。
-
我认为,如果存在差异,它可能会非常小,但正如 Martin 所说,找出差异的唯一方法是测量它。你真的有性能问题吗?如果有,那么更改此代码不是解决方案。如果你没有,那你为什么要问这个问题?
-
我无法测试、测量或做任何会不必要地干扰服务器的事情。转型相当大。
-
如果您无法进行测量,那么请忘记所有关于性能调整的想法。衡量是所有绩效工作的核心。
-
我试图获得一些提升,即使是几秒钟也可以减少服务器任务的负载。