我正在使用LINQ to XML来搜索下面的XML(最终文档的一小部分),最初是在国家名称上搜索,并且想知道将名称创建为子元素而不是属性<是否会有任何性能优势/ p>
<Countries>
<Country name="United Kingdom">
<Grades>
<Grade>PA</Grade>
<Grade>FE</Grade>
</Grades>
</Country>
</Countries>
由于
答案 0 :(得分:1)
就LINQ处理时间而言,差异应该非常小,这取决于文档的形状。如果你正在寻找具有许多属性的元素上的属性,那么它会变慢,所以如果你知道你将只有那个属性,那么它会很快。元素也是如此。因此,如果上面的示例具有代表性,那么属性就越快,因为只有一个属性,但如果将名称移动到元素,则会有两个元素。 可能更重要的第二个考虑因素是解析速度。您需要先解析文档才能搜索它。解析速度主要取决于它必须处理的字符数。因此输入文档越长(以字节为单位),解析它所需的时间就越长。在这个意义上,属性比元素(通常)略短。此外,解析器必须完成的簿记对于属性而言要比元素少(特别是如果元素上只有一个属性)。 但与性能有关:测量它。这是最终的答案。