当前位置 : 主页 > 大数据 > 区块链 >

protobuf-net的大文件反序列化

来源:互联网 收集:自由互联 发布时间:2021-06-22
我需要反序列化1.5GB txt文件.我使用的是code.google.com/p/protobuf-net/中的protobuf-net 有时它会在不同的地方失败(大约50%的情况),但有不同的例外(空引用,内存访问冲突).我注意到如果处理器负
我需要反序列化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

谷歌 :

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

网友评论