gpt4 book ai didi

.net - 如何在 .NET 中序列化大对象? (内存不足异常)

转载 作者:行者123 更新时间:2023-12-02 04:42:12 27 4
gpt4 key购买 nike

我在我的应用程序中使用序列化来实现“保存”功能。但是当数据太大(15+ MB)时,我开始遇到 OutOfMemory 异常。

我有很多对象,它们与其他小对象相连,我认为这会导致内存中的处理能力和数据过多。

我的代码是基于这个的,几乎一样:

http://www.codeproject.com/KB/vb/TreeViewDataAccess.aspx

编辑:

  1. 我不使用自定义序列化,它都是通过 [Serialization] 属性完成的。排除部分字段。

  2. 我序列化了很多对象和自定义类。包括字典、结构和一堆其他东西。

  3. 我将它序列化到一个文件中。

  4. 我使用 XmlSerializer

附言我有 4 GB 物理内存。

解决方案

多亏了答案,我发现我的问题出在 XmlSerializer 上,我已经解决了它。二进制序列化可以很好地处理我得到的数据。

最佳答案

我遇到了完全相同的问题。原因是 .NET序列化不缩放。

我使用 Simon Hewitt 出色的 open 解决了这个问题源库,参见 Optimizing Serialization in .NET - part2 .

除了显着减少内存使用外,它还快点。类似文章我得到了20倍的加速。

关于.net - 如何在 .NET 中序列化大对象? (内存不足异常),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/709399/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com