我需要反序列化1.5GB txt文件.我使用的是code.google.com/p/protobuf-net/中的protobuf-net 有时它会在不同的地方失败(大约50%的情况),但有不同的例外(空引用,内存访问冲突).我注意到如果处理器负
有时它会在不同的地方失败(大约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
Protocol Buffers are not designed to handle large messages. As a general rule of thumb, if you are dealing in messages larger than a megabyte each, it may be time to consider an alternate strategy. That said, Protocol Buffers are great for handling individual messages within a large data set.
Source link