我想知道在封送处理一个结构体与封送处理一个封送处理的结构体之间在内存效率方面是否有任何显着差异。
示例: 假设我们有一个带有某些字段的结构B。
message B{...}
常见表示形式:
message A {
B b = 1;
}
另一种方式:
message A {
bytes b = 1;
}
其中b是封送的B结构。
通常,这是一种好习惯吗?有效率影响吗?
谢谢, 逃跑
答案 0 :(得分:1)
在有效负载级别上,它们是相同的-但是,就实现方式对其进行处理而言,可能存在差异。 最明显的区别是,在进一步反序列化之前,不能使用bytes
。这有优点也有缺点:
所以:是的,它将具有不同的特征。它们是否有利(或相反)取决于您是否还需要对bytes
有效负载执行反序列化步骤
答案 1 :(得分:1)
我认为声明bytes
字段而不是原本应在原型文件中指定的结构是一种不好的做法。
这称为规范漏洞:您将不得不编写其他文档来描述接收方如何理解字节