2011-12-05 72 views
0

是有價值的(內存,CPU時間)做這樣的:鍵和計數優化

<xsl:variable name="node" select="key('mykey',category)"/> 
<xsl:value-of select="count($node[value/text() = 10.0])"/> 
<xsl:value-of select="count($node[value/text() = 5.0])"/> 
<xsl:value-of select="count($node[value/text() = 0.0])"/> 

代替:

<xsl:value-of select="count(key('mykey',category)[value/text() = 10.0])"/> 
<xsl:value-of select="count(key('mykey',category)[value/text() = 5.0])"/> 
<xsl:value-of select="count(key('mykey',category)[value/text() = 0.0])"/> 

還是另闢蹊徑?

回答

0

它可能會產生一個小的差異,但可能並不重要。但是對性能問題的答案總是(a)它取決於你使用的處理器,並且(b)測量它以找出問題。

我建議使用[value=0.0]而不是[value/text()=0.0]。使用/ text()是一個壞習慣,似乎越來越多地來自XQuery世界。它通常會給出相同的答案,除非您的數據包含註釋或內聯元素或非標準化的相鄰文本節點。省略/ text()會使您的查詢更短,更健壯。