protocol buffers原理与使用

本文介绍了Google的Protocol Buffers(protobuf)作为一种高效的数据序列化格式,其优点包括跨语言支持、小体积和快速反序列化。尽管可读性较差,但在thrift-protobuf-compare项目的对比中,protobuf综合性能表现优秀。文章详细阐述了protobuf的使用步骤、Android中的实现框架,以及protobuf消息格式、varint编码和zigzag编码的原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、简介

protocol buffers是google推出的一种数据序列化格式,简称protobuf。

具有以下优点

  • 支持多种编程语言
  • 序列化数据体积小
  • 反序列化速度快
  • 序列化和反序列化代码自动生成

同时,也有以下缺点:

  •  可读性差,缺乏自描述性

在项目 thrift-protobuf-compare中,对各种序列化方式做了全方位的对比,对比结果中,protobuf各项都处于第5左右(共21个),综合性能较好。

下图(左JSON,右Protobuf)是同样的一段数据,用json和protobuf分别描述(仅表示描述方式,并不是最终生成的序列化数据)。可以看出,protobuf是把json中的key去掉了,用数字代替key,从而实现了减小了序列化后的数据大小。而protobuf反序列化过程中,无需做字符串解析,所以速度也很快,综合性能优于json很多。

二、使用步骤

protobuf使用,主要

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值