嗨,這裏的問題,對象在內存中處理大量的.NET
從本質上講,我有一個包含依次比較大詞典
所以基本上是一個非常大名單,我有一個在內存非常大采集。
然後我手動將此集合序列化爲XML,並通過http發送它。不用說,XML太大了,有時候這麼大,我甚至在嘗試發送它之前都會遇到OutOfMemory異常。
在.NET中,我將如何去計算潛在的內存使用情況。例如,在這種情況下,我必須一次只處理少量的Collection來將XML分解爲塊。
如何有效地計算每個「塊」的大小。我不想挑選任意數字,例如「在任何時候處理100個項目」,我想知道,每個組塊的大小應該是多大才是一個個案的基礎。
歡呼聲
UPDATE
雖然@Jacob提供對於該特定問題的最佳解決方案中,應用程序的概念結構本身是有缺陷的。
事實上,解決方案是執行一小部分消息,以便計算在處理集合時消息的可能大小。
然後,您逐個發送每個可接受大小的單元。
但這只是一個破解。真正的解決方案是要麼找到一種不傳遞大量消息的方法,要麼完全使用完全不同的協議。
雖然如果你想使用SOAP,但有一個interesting post on the subject here,但我決定尋找一種方式來發送這麼多的數據。
您是否考慮過比XML更簡潔的發送方式?或者是XML設置 – 2009-06-17 23:40:58
嘿克里斯,是的,我現在有。但是,無論我壓縮多少,我都可能仍然需要以大塊的形式發送它。我更好奇並擔心我會如何解決這個問題。歡呼,儘管 – andy 2009-06-17 23:45:13