protocol buffer headers 有Protocol buffer这种轻便的序列化反序列化工具,Json为什么还会大量使用?
有Protocol buffer这种轻便的序列化反序列化工具,Json为什么还会大量使用?
原因很简单:
1,json是JavaScript原生支持的,没有外部依赖
2,json具有人眼可读性
3,开发人员偷懒
关于序列化的协议和框架,估计都可以出一本百科全书了,热门一点的如:
xml、json、bson、Hessian、protocol buffers...
还有很多小众冷门的,排名不分先后。
虽然有各种各样的协议和框架,但序列化本质上可以分为两种:
- 二进制协议,如 bson、Hessian、protocol buffers等,将数据转换为二进制形式。
- 文本协议,如 xml,json 等,这类协议将数据转换为文本(字符串)的形式。
二进制协议的优点是体积小效率高,例如protocol buffers可以用将数据压缩到位(bit),序列化和反序列化的性能也很好,非常适用于各种系统通讯和接口调用。
但问题也在这里,二进制数据几乎没有可读性,所以在开发和调试程序时,对程序员来说就比较痛苦,尤其是频繁变化的数据结构。
文本协议则刚好相反,数据体积大,性能差,却能满足可读性要求。例如我们可以轻松看懂一段json,或者人肉构造数据。 对于快速开发和web开发来说,可以提高开发效率,开发人员不用过多关注协议或者框架,专注业务。
我的观点是:
1,对于业务稳定,性能要求极高的场景,优先使用 protocol buffers 等二进制序列化协议
2,对于性能要求不高,业务变化频繁的场景,优先使用 json、xml 等文本协议
Python好找工作吗?前景如何?
现在的各行各业的工作,行行出状元。Python应该是一门非常吃香,非常吃香的工作吧。现在互联网这么发达,现在国际什么都是很发达的。科学在进步,社会在发展。以后的互联网展直是无法想象。现在的社会没有知识是寸步难行。每个人生活在这个世上都有自己的人生价值,都有自己追求的目标,都有自己的理想。如果喜欢就按自己的路走下去吧。我对这些也不太了解,我懂的也少,如果有什么说的不对请见谅。祝各位朋友人生路上飞黄腾达,事业有成,财运滚滚,万事如意!谢谢工作人员,让我回答这个问题,你们辛苦啦。
protocol buffer中为什么同时出现int32类型,uint32,sint32类型?
首先,“sint32效率更高”不是无条件成立的,只在特殊情况下成立。其次,Java 没有 uint32 类型。最后,protobuf 语言发展是先有 int32 后有 sint32/uint32 ,不过从开源代码看不出这一点。所以,应该默认使用 int32 ,在满足特殊需求的时候才考虑 sint32/uint32。
buffer overflow是什么意思?
bufferoverflow[英][ˈbʌfəˌəuvəˈfləu][美][ˈbʌfɚˌovɚˈflo]n.缓存溢出错误双语例句1MutiplebufferoverflowvulnerabilitiesexistintheSessionInitiationProtocol(SIP)channeldriverinAsteriskOpenSource.AsteriskOpenSource的会话初始化协议(SIP)通道驱动程序中存在多个缓冲区溢出漏洞。
protocol buffer headers protobuffer详解 中国speakingthe视频
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。