gpt4 book ai didi

android - Protobuf 文件只读取某些字段

转载 作者:太空宇宙 更新时间:2023-11-03 12:53:40 30 4
gpt4 key购买 nike

我有超过 50 个字段连续写入 .proto 文件,但我的查询是

1) 如果我只需要读取 10 个字段,那么如何实现。

2)如果我需要从特定字段中读取部分数据,我该如何实现。

这应该在不从 .proto 文件加载所有数据的情况下完成。

感谢您的关心。

最佳答案

这对于 Protobufs 来说是不可能的。从理论上讲,您可以编写一个流式解析器,它可能能够在不解析整个消息的情况下提取部分消息,但只有当您需要的字段恰好位于消息的前面时它才会起作用,因为您在至少必须在您想要的字段之前解析所有内容。无论如何,没有一个标准的 protobuf 实现提供了一种简单的方法来进行流式分析,因为这不是 protobuf 设计使用的方式。一些第三方实现,例如 upb , 可能会有所帮助。

另一方面,Cap'n Proto , 作为 Protocol Buffers 的替代品,确实支持从一个大文件中读取一个字段,而不必解析它之前的字段。它通过将字段放置在固定偏移处并利用 mmap() 处理大文件来实现这一点。

披露:我是 Cap'n Proto 和 Protocol Buffers v2(由 Google 开源的版本)的作者。

关于android - Protobuf 文件只读取某些字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25187518/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com