我试图在网上找到一些建议,但找不到任何相关内容。
让我们说我正在创建一个包含很多字段(50+)的协议缓冲消息。最好是将所有字段保持在同一级别还是将它们组织在子消息中?这种或那种方式对表演有影响吗?
示例:
message myMessage{
string field1 = 1;
string field2 = 2;
....
string fieldn = n;
}
VS
message myMessage{
SubMessage1 groupedfieldsbasedonsomebusinesslogic1 = 1;
SubMessage2 groupedfieldsbasedonsomebusinesslogic2 = 2;
message SubMessage1{
string field1 = 1;
string field2 = 2;
...
string fieldx = x;
}
message SubMessage2{
string fieldxplus1 = x+1;
...
string fieldn = n;
}
}
我在这里不太考虑可读性,因为在反序列化以获得平坦数据或嵌套数据时有利有弊。我的问题是真正关注技术影响。
答案 0 :(得分:6)
没有最好的" - 一切都是上下文的,只有你拥有大部分背景。
然而!关于表现的一些小想法:
在所有这些事情中,如果是我,那么我会关注的是第二个。
也许从看起来可用的东西开始,并测量它以获得真实的数据量;它的表现是否可以接受?