protobuf.js 反射与静态代码

protobuf.js reflection vs. static code

我不知道什么时候使用加载 .proto 文件(反射)的方法更好,什么时候用 pbjs 生成静态代码更好script/tool。

带反射的方法:

protobuf.load("awesome.proto", function(err, root) {
   ...
});

静态代码方法:

protobuf.load("bundle.json", function(err, root) {
    ...
});

根据 protobuf.js Wiki,两种方法的性能相同。

有人可以向我解释一下哪种方法用于哪种目的吗?

我在互联网上搜索了很多,但无法得到这个问题的答案。我不是从编码的角度出发,而是想弄清楚哪种方法更适合。

关于性能的声明只是关于(反)序列化函数的使用,而不是关于设置。从您链接的文档:

.proto

  • 需要 完整
  • 大量网络请求和解析器开销

.json

  • 需要 light
  • 生产环境推荐捆绑,提前完成解析

已编译

  • 生成的静态代码,仅适用于 minimal
  • 生成额外的但可编辑的源代码没有任何反射功能