kam*_*iew 3 android protocol-buffers
我有超过50个字段不断地在.proto文件中写入,但我的查询是
1)如果我只需要阅读10个字段,那么如何实现。
2)如果我需要从特定字段中读取部分数据,那我该如何实现。
这应该在不加载.proto文件中的所有数据的情况下完成。
感谢你的关心。
对于Protobufs,这实际上是不可能的。从理论上讲,您可以编写一个流解析器,该解析器可以提取消息的一部分而无需解析整个内容,但是只有当您需要的字段恰好位于消息的开头时,它才起作用。最少必须解析所需字段之前的所有内容。无论如何,没有一种标准的protobuf实现提供一种简单的方法来进行流解析,因为这不是protobuf设计使用的方式。一些第三方实现(例如upb)可能会有所帮助。
另一方面,协议缓冲区的替代方案Cap'n Proto 确实支持从大文件中读取一个字段,而不必在其之前解析字段。它通过以固定的偏移量放置字段并利用mmap()大文件来实现此目的。
披露:我是Cap'n Proto和Protocol Buffers v2(由Google开源的版本)的作者。
| 归档时间: |
|
| 查看次数: |
595 次 |
| 最近记录: |