关于XML文件大小限制

时间:2011-02-19 05:39:41

标签: c# xml

  

可能重复:
  maximum size for xml files

我开发了一个使用xml文件作为数据源的应用程序。但我不知道xml文件使用的任何限制。

我想根据xml数据的大小了解xml文件的限制。因为我在google&当xml数据大小超出限制时,我得到的结果就像xml一样,时间可能会使应用程序性能变慢。但是我无法找到xml数据的限制。

任何人都可以帮助我吗?

...感谢名单

4 个答案:

答案 0 :(得分:2)

不,XML大小没有限制,你期望的xml数据大小是多少?

使用大型XML可以获得性能,XMLDocument.Load()将内存作为磁盘上XML文件的大小。如果您有10 MB xml文件并且2000个用户登录到该站点并打开xml文件,则将使用IIS工作进程的虚拟地址空间的2GB限制,并且您的应用程序将崩溃。

小心使用xmldocument打开巨大的xml文件。

答案 1 :(得分:1)

没有固有的限制,但您应该问自己将有多少数据存储为XML以及将要使用多少数据。 XML解析相对较慢,如果你经常使用它会导致性能问题。

XML非常适合中小型文件。如果您有非常简单的数据,您可能希望使用平面文件格式。如果您有大量数据,或者数据非常复杂,您可能希望使用比XML更精彩的东西,例如数据库或自定义二进制格式。

您是否可以发布有关XML文件中存储的信息类型的更多信息?这将有助于我们确定XML是否适合这项工作。

答案 2 :(得分:1)

如果使用XmlReader,则没有固有的限制。 xml一次解析一个令牌,因此内存占用非常低。但是如果你想把它作为XmlDocument或XDocument(LINQ版本)读取,那么所有的XML都被加载到内存中,它在内存中比在磁盘上更大(因为在内存中,在c#中,它是UTF-16所以2个字节用于每个char,在磁盘上你通常保持UTF-8,所以1个字节用于许多“West-World”字符(A-Za-z0-9和标点符号)。然后在内存中有成群的XmlElement和XmlAttributes等等。 XmlSerialier我认为一次读取Xml一个“块”(一个对象),所以这里没问题,除非你有太多的对象(但这可能不是你的问题)

答案 3 :(得分:0)

没有限制。 如果您读取大型.xml文件,则需要更多时间。 如果你不想减慢你的应用程序,只需使用强大的xml解析(在boost库中使用rapidxml。),或者你可以使用二进制数据。