这可能是沿着.NET Collections and the Large Object Heap (LOH)大对象堆
.NET中的线,我加载一个字符串,使得〜200KB的文本文档时,XML转换为base64一个XmlDocument。问题是,字符串应该分配给大对象堆。从这里的阅读比较中我知道XmlReader是读取字符串的最有效的方法,但XmlDocument可能会给我更直接的阅读和更多的功能(xpath)。
我的XML的每个节点都应该是一个相当小的字符串,没有前往附近的大型对象堆。使用Lutz .Net Reflector它看起来XmlDocument在内部使用链接节点。
所以最后,我的问题:请问加载此字符串保存〜200 KB(> 85000个字节)使用XmlDocument的时候引起的又一目的为蕙。我们有点担心分割堆并导致OOM错误。或者XmlDocument恰好发生(至少对于我询问的数据的情况)会在托管堆上创建大量对象?
该字符串来自数据库。我们正在Microsoft Dynamics平台之上构建一个垂直市场应用程序,因此使用其他类型的数据库字段对我来说不是一种选择。 – 2009-07-17 20:29:55