這可能是沿着.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