曾经流行 的JSON、XML似乎在游戏开发领域悄然退居二线,protobuf 具备更优势。
Protocol Buffers (简称 Protobuf)是由 Google 开发的一种语言无关、平台无关、可扩展的序列化数据格式。它主要用于数据通信协议和数据存储。与 XML 相比,Protobuf 更小、更快、更简单
一、protobuf是什么
Protocol Buffers 是Google开发的一种轻量级、高效的数据交换格式。
它能够将结构化数据序列化,适用于网络传输和数据存储。
与JSON和XML相比 ,protobuf生成的二进制数据更小,解析速度更快。
二、性能优势
Protobuf 的二进制格式使得数据包体积比JSON小3-10 倍,序列化和反序列化速度比JSON快5-100倍。

三、支持跨平台跨语言
Protobuf 支持多种编程语言(C++、C#、Java,JavaScript,TypeScript等),只需定义一次数据结构,即可在各个平台上使用
兼容优势,向前向后兼容,Protobuf 通过字段编号而非字段名来标识数据,新增字段不会破坏旧版程序,老版本可以忽略新字段继续运行
Protobuf 的工作流程
-
编写 .proto 文件:定义数据结构(message)及其属性。
-
使用 protoc 编译器编译 .proto 文件:生成相应语言的代码文件,如 .pb.cc 和 .pb.h 文件。
-
在代码中使用生成的文件:实现对数据的序列化和反序列化。
四、应用场景
protobuf并非在所有场景下都是最佳选择,对于 简单的示例或者小项目,引入protobuf需要安装环境、生成代码,反而增加了不必要的复杂度。
参考:
