当前位置: 首页 > 知识库问答 >
问题:

协议缓冲区(.proto)文件实现,效率不同还是相同?

薛宇
2023-03-14

在编写时。gRPC的原型文件我注意到我可以。

1)在一个. proto文件中包含我的所有消息(请求和响应)以及所有rpc。

2) 在各自的rpc中写入每个rpc。原型文件。

我可以看到,当我有两个访问相同消息的RPC时,在同一个文件中写入协议缓冲区会更方便。然而,我更愿意在可能的情况下将它们分开,以采用更模块化的方法。

我的问题是,忽略偏好这两种方法之间是否有效率差异?此外,如有任何关于本公约的信息,我们将不胜感激。

注意:我使用的是gRPC(C和Java),我不知道语言实现是否与答案有关。

共有1个答案

屈昊天
2023-03-14

效率没有差别。有些语言会根据原始文件名导入生成的代码,例如,如果未设置选项Java\u multiple\u files=true,则会导入C和Java,因此差异在<代码>之外可见。proto文件本身。但不会影响性能。

唯一的限制是服务的所有方法都必须在一个文件中。但是这些方法的消息仍然可以在单独的文件中。

 类似资料:
  • 问题内容: 我正在尝试动态解析Java中的给定.proto文件,以解码Protobuf编码的二进制文件。 我有以下解析方法,其中“ proto”字符串包含.proto文件的内容: 但是,执行时,先前的方法将引发消息“协议消息标签的电线类型无效”的异常。我使用了来自Google的示例.proto文件,因此我认为它是有效的:https : //github.com/google/protobuf/bl

  • 是否有可能解析传入的google协议缓冲区数据报而不使用任何缓冲区。原始文件?我只是现在使用协议缓冲区对其进行了序列化,但不知道IDL文件。 我在寻找一种通过某种反射来迭代任何值的方法?这可能吗? 非常感谢。

  • 我是协议缓冲区的新手,我想知道是否可以搜索协议缓冲区二进制文件并以结构化格式读取数据。例如,如果我的.proto文件中的一条消息有4个字段,我希望序列化该消息,并将多条消息写入一个文件,然后在该文件中搜索特定的字段。如果我找到该字段,我希望以与写入时相同的结构化格式读回消息。对于协议缓冲区,这是可能的吗?如果可能,任何示例代码或示例都将非常有用。谢谢

  • 我知道协议缓冲区是一种序列化格式,需要中的消息格式。proto,以便正确读回。但我有一个文件,我不知道正确的消息格式,因为它没有发布。我想做的是自己对数据进行反向工程,这样我就可以重建消息。为此,我需要读取原始文件,从中可以提取字段编号、类型和值。 有没有一个程序可以做到这一点(最好是在python中,但C/C也很酷)?

  • 我正在使用模拟开放框架架构SOFA(语言),我的目标是在一些沙发源本机数据与其他外部应用程序之间设置一些通信类型。按照这个顺序,我使用ZeroMQ将沙发数据传输到python外部应用程序。 在SOFA( 文件,以下字段:,,? 目前,文档中不清楚如何定义与向量和其他数据类型相关的字段,如SOFA原生的(四元数)。 Vec3d和Quat由以下元素组成: 是否可以定义为枚举数? 更新 目前,我的暂定仪

  • 据我所知,协议缓冲区主要用于控制服务器和客户端代码的项目。我的一般问题是——协议缓冲区能否用于将二进制消息序列化/反序列化到使用现有协议的服务器?所以,我的问题: > 如果协议缓冲区不支持本机微调现有协议的序列化/反序列化方式,那么可以通过扩展添加该功能吗?是否可以以某种方式添加序列化/反序列化方法可以识别的关键字?也许这可以通过扩展或修改protobuf csharp port或protobuf