我需要反序列化 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;
}
}
今天我有一个错误代码为 0xc0000005 的 FatalExecutionEngineError,但我无法意识到代码的哪一部分可能不安全。这不是一个持续的错误,我重新启动应用程序后一切正常。
这是带有序列化的文件的示例,我需要对其进行反序列化: https ://docs.google.com/file/d/0B1XaGInC6jg3ZXBZZDA3bHh3bVk/edit