我想知道在封送结构和封送封送结构之间的内存效率方面是否存在显着差异。
示例:假设我们有一个带有一些字段的结构 B。
message B{...}
常见的表示:
message A {
B b = 1;
}
另一种方式:
message A {
bytes b = 1;
}
其中 b 是一个编组的 B 结构。
一般来说,这是一个好习惯吗?任何效率影响?
谢谢, 埃拉德
我想知道在封送结构和封送封送结构之间的内存效率方面是否存在显着差异。
示例:假设我们有一个带有一些字段的结构 B。
message B{...}
常见的表示:
message A {
B b = 1;
}
另一种方式:
message A {
bytes b = 1;
}
其中 b 是一个编组的 B 结构。
一般来说,这是一个好习惯吗?任何效率影响?
谢谢, 埃拉德
在有效负载级别,它们是相同的 - 但是,就实现如何处理它们而言,可能存在差异。最明显的区别是你不能使用 abytes
直到你进一步反序列化它;这有利有弊:
所以:是的,它将具有不同的特征。它们是否有利(或相反)取决于您是否还需要对bytes
有效负载进行额外的反序列化步骤
我认为声明一个bytes
字段而不是您在原型文件中指定的结构是一种不好的做法。
这被称为规范漏洞:您将不得不编写额外的文档来描述接收器必须如何理解字节