doc[protocol]: 更新说明文档

This commit is contained in:
jaysunxiao
2021-05-27 19:36:29 +08:00
parent 168774b578
commit 3169698046
+3 -3
View File
@@ -61,16 +61,16 @@ cpu i9900k
- 协议类修改
```
协议类属性名称修改名称过后无法解析,内部使用变量名称按照字符串的自然顺序来依次读写的,所以修改协议类属性的名称会导致自然顺序改变,进而导致读写顺序变化导致出现异常
协议类属性名称修改过后无法解析,内部使用属性的名称按照字符串的自然顺序来依次读写的,所以修改属性的名称会导致读写顺序变化导致出现异常
协议类减少字段无法解析,字段不用了,就放在那不赋值就可以,没必要一定要删除,可以等到下个大版本更新再去删除,所以主要考虑增加字段的情况
协议类增加字段无法解析,这套框架是为通信设计的协议,增加字段服务器不更新也解析不出来新字段,既然服务器要更新为什么不直接通过版本号去控制?
协议类增加字段无法解析,这套框架是为通信设计的协议,增加字段服务器不更新也解析不出来新字段,既然服务器要更新为什么不通过版本号去控制?
目前的序列化过后对象的大小如下:
简单对象,zfoo包体大小8kryo包体大小5protobuf包体大小8
常规对象,zfoo包体大小547kryo包体大小594protobuf包体大小984
复杂对象,zfoo包体大小2214kryo包体大小2525protobuf包体大小5091
如果考虑支持修改协议类属性名称,要做的就是让协议类属性的读写顺序可控,就要引入很多的注解来标识属性的顺序(protostuff就是这样做的),但是感觉这样不优雅。
如果考虑支持修改协议类属性名称,必须让字段的读写顺序可控,这就需要注解来标识属性的顺序(protostuff就是这样做的),但是感觉这样不优雅。
如果考虑支持字段增加和减少,需要消耗5%左右的性能(预估),并且增加一倍的包体积大小(写入字段的顺序),感觉不是非常划算。
因为可以通过协议版本号来解决这个问题,所以去支持这样的增删操作动力并不是非常的大。
```