文章目录
一、Protobuf 简介
二、Protobuf 优缺点分析
1、Protobuf 优点
2、Protobuf 缺点
三、参考资料
一、Protobuf 简介
Protobuf 是 Google 开源项目 , 该项目是序列化数据的一种解决方案 , JSON , XML 等也可以进行序列化数据操作 ;
序列化 : 将内存中的对象或数据 , 转为二进制数据 , 可存放或传输 ;
反序列化 : 将二进制数据 转为 内存中的对象或数据 ;
Protobuf 使用场景 :
数据交换 : 从网络中下载数据 , 发送数据给服务器 ;
数据存储 : 获取或生成的数据 , 需要存储下来 ;
Protobuf 语言特点 : Protobuf 包含一套 " 数据结构接口描述语言 " , 以及与之配套的 " 编译器 " , 利用 " 编译器 " 生成对应数据结构的不同编程语言的代码 , 如 Java , Python , C++ 等 ;
Protobuf 源码地址 : https://github.com/protocolbuffers/protobuf
Protobuf 当前支持的编程语言 , 平台 ;
一套 Protobuf 源文件 , 可以编译出不同的语言的源代码 , 支持的语言类型如下 :
二、Protobuf 优缺点分析
1、Protobuf 优点
性能方面 :
体积小 : Protobuf 序列化后 , 体积小 , 序列化后 , 大约是 JSON / XML 等文本方式的 1 3 \cfrac{1}{3}
3
1
; 序列化后可操作性高 , 存储时占用的空间少 , 传输时 , 消耗更少的带宽 ;
序列化速度快 : Protobuf 序列化速度快 , 转换速度是 JSON / XML 的几十倍到上百倍 ;
在使用方面 , Protobuf
使用简单 ,
维护成本低 ,
扩展性好 ,
安全性好 ;
使用范围方面 , Protobuf 可以
跨平台 ( MAC / Linux / Windows / Android / iOS ) ,
跨语言 ( Java / Python / C / C++ / … ) ,
可扩展 ;
2、Protobuf 缺点
通用性较差 : 目前 XML / JSON 广泛使用 , 是行业标准的序列化 , 反序列化格式 ;
解释性差 : 序列化 , 反序列化 Protobuuf , 需要有 Protobuf 源文件才可以进行 ;
三、参考资料
Protobuf 参考资料 :
Protobuf 官网主页 : https://developers.google.com/protocol-buffers
Protobuf 语法指南 : https://developers.google.com/protocol-buffers/docs/proto
Protobuf Java 语言对应用法 : https://developers.google.com/protocol-buffers/docs/javatutorial
Protobuf 源码地址 : https://github.com/protocolbuffers/protobuf