我想将protobuf消息流式传输到文件中。
我有一个protobuf消息
message car {
... // some fields
}
我的java代码会创建此汽车消息的多个对象。
我应该如何将这些消息流式传输到文件中。
据我所知,有两种方法可以实现。
还有其他消息,如汽车
message cars {
repeated car c = 1;
}
并使java代码创建一个汽车类型对象,然后将其传输到文件。
只需使用 writeDelimitedTo 功能将汽车信息恰好串联到一个文件上。
我想知道使用protobuf进行流媒体传输的更有效方法。
我应该何时使用模式1,何时应该使用模式2?
这是我从https://developers.google.com/protocol-buffers/docs/techniques#large-data
得到的我不清楚他们想说什么。
大数据集
协议缓冲区不是为处理大型邮件而设计的。作为一个 一般的经验法则,如果你处理的信息大于a 每个兆字节,可能是考虑替代策略的时候了。
也就是说,协议缓冲区非常适合处理单个消息 在大型数据集中。通常,大数据集实际上只是一个 小块的集合,每个小块可以是结构化的 一块数据。尽管Protocol Buffers无法处理整个问题 立即设置,使用Protocol Buffers对每个部分进行大量编码 简化您的问题:现在您只需要处理一组字节 字符串而不是一组结构。
协议缓冲区不包含对大数据的任何内置支持 因为不同的情况需要不同的解决方案。 有时一个简单的记录列表可以做,而有时你也可以做 想要更像数据库的东西。应该开发每种解决方案 作为一个单独的图书馆,只有那些需要它的人才需要支付 成本。
答案 0 :(得分:0)
看看Previous Question。尺寸和时间的任何差异都是最小的 (选项1更快??,选项2更小)。
我的建议是: