Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net Protobuf网络标签号是否对性能有影响_.net_Serialization_Protocol Buffers_Protobuf Net - Fatal编程技术网

.net Protobuf网络标签号是否对性能有影响

.net Protobuf网络标签号是否对性能有影响,.net,serialization,protocol-buffers,protobuf-net,.net,Serialization,Protocol Buffers,Protobuf Net,我记得有一次读到protobuf-net使用的标签对性能有影响,但我似乎没有发现那个帖子 例如,使用ProtoInclude(1001,typeof(MyType))将不会像ProtoInclude(101,typeof(MyType))那样有效 会员也是如此 你能不能解释一下这一点,也许能给出一些最佳实践 谢谢,协议缓冲区中的字段号使用“varint”编码。在“varint”中,MSB是一个连续位,因此数据的每个字节只有7位。然而,前3位是为字段类型保留的;这意味着: 4位字段号(包括字段类

我记得有一次读到protobuf-net使用的标签对性能有影响,但我似乎没有发现那个帖子

例如,使用ProtoInclude(1001,typeof(MyType))将不会像ProtoInclude(101,typeof(MyType))那样有效

会员也是如此

你能不能解释一下这一点,也许能给出一些最佳实践


谢谢,

协议缓冲区中的字段号使用“varint”编码。在“varint”中,MSB是一个连续位,因此数据的每个字节只有7位。然而,前3位是为字段类型保留的;这意味着:

  • 4位字段号(包括字段类型)可以存储在单个字节中
  • 11位字段号可以存储在2个字节中
  • 18位字段号可以存储在3个字节中
等等


十进制101是一个7位数字;十进制1001是一个10位数字;因此,这两个字段都需要2个字节。这基本上就是这里的开销工作原理。除此之外:没关系。

谢谢你,马克!这很有帮助!