2010-08-27 18 views
2

當處理大小爲2MB的xml文件時,我的.NET CF 3.5應用程序接收到內存不足異常。現在我明白這應該改爲SAX處理,但我想知道爲什麼會收到這個錯誤。.NET Compact Framework和內存管理:OOM異常

http://blogs.msdn.com/b/mikezintel/archive/2004/12/08/278153.aspx, 「Windows CE爲大型分配創建了一個額外的虛擬地址空間,大小爲1G」。 「32MB應用程序虛擬地址空間可能會受到大型應用程序的很大壓力,並且如果它變得足夠分散,即使存在空閒物理內存,也可能導致OOM錯誤。」

這是否意味着如果我的應用程序的堆大小(包括DOM)佔用的內存大於32 MB,那麼應用程序將崩潰,但不能使用更多的1GB虛擬地址空間進行此分配?

回答

0

從我記憶中,所有普通數據(和關聯對象)都位於應用程序的32Mb虛擬地址空間中 - 要使用1Gb附加地址空間,您必須查看內存映射。當然,你的情況下的替代方案將是基於流的處理。