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 库
- 生成额外的但可编辑的源代码没有任何反射功能。
我不知道什么时候使用加载 .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 库
- 生成额外的但可编辑的源代码没有任何反射功能。