我需要反序列化1.5GB txt文件。我使用的是code.google.com/p/protobuf-net /
中的protobuf-net有时它会在不同的地方出现不同的异常(空引用,内存访问冲突)而失败(大约50%的情况)。我注意到如果处理器负载很低,那么失败的可能性就会降低。
我该怎么做才能避免这种失败?
以下是反序列化代码的示例:
public static History LoadFromFile(string path)
{
using (var fileStream = File.OpenRead(path))
{
var obj = Serializer.Deserialize<History>(fileStream);
return obj;
}
}
今天我有一个FatalExecutionEngineError,错误代码为0xc0000005,但我无法意识到代码的哪一部分可能不安全。这不是一个常数错误,重新启动应用程序后一切正常。
以下是序列化文件的示例,我需要反序列化: https://docs.google.com/file/d/0B1XaGInC6jg3ZXBZZDA3bHh3bVk/edit
答案 0 :(得分:1)
Google:
协议缓冲区不是为处理大型邮件而设计的。作为一般经验法则,如果您正在处理大于每兆字节的消息,则可能需要考虑替代策略。也就是说,协议缓冲区非常适合处理大型数据集中的单个消息。