Protocol buffer (.proto) 文件实现,不同还是相同的效率?

Protocol buffer (.proto) file implementation, different or same efficiency?

在为 gRPC 编写 .proto 文件时,我注意到我也可以。

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

2) 将每个 rpc 写入其自己的 .proto 文件中。

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

我的问题是,忽略偏好这两种方法在效率上有什么区别吗?此外,如有任何关于此处约定的信息,我们将不胜感激。

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

效率没有区别。某些语言根据原始文件名导入生成的代码,例如,C++ 和 Java(如果未设置 option java_multiple_files = true),因此在 .proto 文件本身之外可以看到差异。但是没有影响性能。

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