在.NET中处理大量内存对象

and*_*ndy 3 .net memory in-memory

嘿伙计们,这是问题,

从本质上讲,我有一个非常大的List包含相对较大的Dictionaries

所以基本上,我有一个非常大的内存集合.

然后我手动将此集合序列化为XML,并通过http发送它.不用说,XML太大了,有时候这么大,我甚至在尝试发送之前就得到了一个OutOfMemory异常.

在.NET中,我将如何计算潜在的内存使用量.例如,在这种情况下,我必须通过一次只处理少量的Collection来将XML分解为块.

如何在运行中有效地计算每个"块"的大小.我不想选择任意数字,"在任何时间处理100个项目",我想知道,大约每个块的大小应该根据具体情况而定.

干杯

UPDATE

尽管@Jacob为这个特定问题提供了最佳解决方案,但应用程序的概念结构本身存在缺陷.

实际上,解决方案是执行一小部分消息,以便在处理集合时计算消息的可能性.

然后,您逐个发送每个可接受大小的单元.

但这只是一个黑客.真正的解决方案是找到一种不传递大消息的方法,或者完全使用完全不同的协议.

这里有关于这个主题有趣帖子,但是如果你想使用SOAP,我决定找到一种方法来发送这么多数据.

alb*_*ein 6

为什么不直接对数据进行流式处理,以便在运行时只需转换为XML,避免在内存中存在大量XML文件?