2012-04-18 51 views

回答

1

没有看到您的代码,要优化它并不容易。但是,您应该考虑以下一点:

Linq-to-XML是一个基于DOM的解析器,它将整个XML文档读取到驻留在内存中的模型中。所有查询都是针对DOM执行的。对于大型文档,构建DOM可以是内存和CPU密集型的。此外,如果Linq-to-XML查询写入效率低下,可以多次导航相同的树节点。

作为一种替代方案,考虑使用串行(SAX)解析器,如XmlReader。这种类型的解析器不会为您的文档创建基于内存的模型,并且仅以向前方式操作,迫使您只读取一次每个元素。

0

我这是一个大而复杂的XML文件,您可以尝试使用SAX类型XML解析器来解析它。 SAX解析器将为XML文件中的每个节点生成一个事件,因此您不需要将整个文件加载到内存中。如果一个小文件应该在应用程序中作为Web响应进行分析,并且必须经过验证,那么我会建议您使用DOM类型XML解析器。