1
67
我一般都看过 不是从最快的角度看 而是来自 内存利用率 观点。对于我在其中使用的使用场景(典型的企业集成),所有的实现都足够快。 然而,在我失败的地方,有时是惊人的,没有考虑到我正在使用的XML的一般大小。如果你事先考虑一下,你可以省去一些悲伤。
XML在加载到内存中时会膨胀,至少对于像
使用任何读卡器将整个文档全部加载到内存中的过程。(
|
2
10
XML文档是整个XML文档的内存表示形式。因此,如果您的文档很大,那么它将消耗比使用xmlreader读取它更多的内存。 这是假设当使用xmlreader时,您逐个读取和处理元素,然后丢弃它。如果您使用xmlreader并在内存中构造另一个中介结构,那么您也有同样的问题,并且您正在破坏它的目的。 谷歌 SAX versus DOM “了解更多有关处理XML的两个模型之间的差异的信息。 |
3
4
另一个需要考虑的问题是,对于处理格式不完全的XML,xmlReader可能更健壮。我最近创建了一个客户机,它使用了一个XML流,但是该流没有在某些元素中包含的URI中正确地转义特殊字符。xmldocument和xpathdocument完全拒绝加载XML,而使用xmlReader,我可以从流中提取所需的信息。 |
4
0
有一个大小阈值,在该阈值下,xmlcondocument将变慢,最终无法使用。但是阈值的实际值将取决于您的应用程序和XML内容,因此没有硬性和快速的规则。 如果XML文件可以包含大型列表(比如数万个元素),那么您肯定应该使用xmlreader。 |
5
0
编码差异是因为混合了两种不同的度量。UTF-32每个字符需要4个字节,并且本质上比单字节数据慢。 如果您查看大型(100K)元素测试,您会发现无论使用何种加载方法,对于每种情况,时间都会增加大约70ms。 这是一个(几乎)恒定的差异,特别是由每个字符的开销引起的, |
Pungiish · 如何使用xPath或其他方法获取最后的XML项? 7 年前 |
TheFootClan · 选择XML节点[重复] 7 年前 |
illya · XDocument中的OR运算符。后代LINQ查询 9 年前 |
Fukkatsu · FormatException,将字符串转换为长字符串 10 年前 |