在cocos creator 2.4.7 项目中, 使用protobuf、Json、flatBuffers进行序列化和反序列化的对比,发现:
序列化和反序列化均要优化protobuf,在原生更加明显,难道是我使用的问题吗。
pc:
原生:
我的代码:
在cocos creator 2.4.7 项目中, 使用protobuf、Json、flatBuffers进行序列化和反序列化的对比,发现:
序列化和反序列化均要优化protobuf,在原生更加明显,难道是我使用的问题吗。
pc:
序列化和反序列化均要优化protobuf是什么意思0.0最后测出来哪种比较好
你咋那么可爱哈哈哈,看图的结果是json的速度要远快于protobuf
哦哦 他是说优于,打错字了。我的理解是解析速度上json是应该快点,比较其他是二进制转的。目的是优化数据包大小,减少流量。
最终试了一下,因为安卓和pc上有jit优化,protobuf 反序列化会优于json,但是ios没有jit,protobuf反序列化会远远低于json。所以在论坛上有用户把这部份工作放在c++这一层操作,这样反序列化速度就上来了。
哦哦,proto文件大不大哦,我还没试,还在研究flatbuffers
这确实, protobuf 利用 buffer 转 object 性能是真的差
之前搞弹幕游戏, 在服务端 1秒1消息下只是 反序列一个 只有2级深度的对像都导致游戏表现卡顿, 最终用回json就好了, 所以后面都采用前后端只依赖 pb 转json 来交互, 收到json, 再pb create把json 填到pb对像里
flatBuffers,我这里也试过,序列化相对于json、pb都要慢,反序列化要快,但是压缩数据效果一般,但是如果你放在js层去做编解码,在没有jit的情况下,效率肯定是不如json,如果真的要做的话,建议你在c++层去做编解码
确实如此 
我们一秒要交互十几次,我们之前是json,现在准备用二进制来传输,protobuf和flatBuffers有什么建议么,网上说fb
我建议前后端只把pb当成一个辅助约束字段的工具, 真正交互时还是用回json吧 
flatBuffers 没用过不知道情况
这种低频代码没必要这么计较性能吧。
编译出js 而不是直接用proto就不会有这种问题
一样的,我一直都是用protobufjs转js来用的, 性能也是不如json的, 转出来的js也是直接把数据转化做Uint8Array