我使用Protobuf-net v2序列化包含List字段的类。在某些情况下,List字段可能会变得非常大,因此我的程序因内存不足而失败。
我现在想要实现的是一个将我的对象的Proto-buf表示写入磁盘但使用缓冲区的过程,这样我就不会过度使用我的内存。所以我开始:
using (var fs = File.OpenWrite(fullPath))
{
using (var bs = new BufferedStream(fs, 4096*2))
{
Serializer.Serialize(bs, myObject);
}
}
但是,抛出相同的OOM异常。我怀疑我需要为缓冲区编写更多代码,但是,我甚至不确定我打算做什么是一个好主意,如果存在任何其他方法,我想,我的问题很常见。
非常感谢提前。