乐趣区

关于protobuf:Protobuf通信协议

前言

在挪动互联网时代,手机流量、电量是最为无限的资源,而挪动端的即时通讯利用无疑必须得直面这两点。

解决流量过大的根本办法就是应用高度压缩的通信协议,而数据压缩后流量减小带来的天然后果也就是省电:因为大数据量的传输必然须要更久的网络操作、数据序列化及反序列化操作,这些都是电量耗费过快的本源。

以后即时通讯利用中最热门的通信协议无疑就是 Google 的 Protobuf 了,基于它的优良体现,微信和手机 QQ 这样的支流 IM 利用也早已在应用它。

Protobuf 简介

什么是 Google Protocol Buffer?如果您在网上搜寻,应该会失去相似这样的文字介绍:

Google Protocol Buffer(简称 Protobuf) 是 Google 公司外部的混合语言数据规范,目前曾经正在应用的有超过 48,162 种报文格式定义和超过 12,183 个 .proto 文件。他们用于 RPC 零碎和继续数据存储系统。

Protocol Buffers 是一种轻便高效的结构化数据存储格局,能够用于结构化数据串行化,或者说序列化。它很适宜做数据存储或 RPC 数据交换格局。可用于通信协定、数据存储等畛域的语言无关、平台无关、可扩大的序列化构造数据格式。目前提供了 C++、Java、Python 三种语言的 API(即时通讯网注:Protobuf 官网工程主页上显示的已反对的开发语言多达 10 种,别离有:C++、Java、Python、Objective-C、C#、JavaNano、JavaScript、Ruby、Go、PHP,基本上支流的语言都已反对,详见工程主页:https://github.com/52im/protobuf)。

装置 Google Protocol Buffer

在网站 https://github.com/52im/protobuf 上能够下载 Protobuf 的源代码。而后解压编译装置便能够应用它了。

装置步骤如下所示:

tar -xzf protobuf-2.1.0.tar.gz 
cd protobuf-2.1.0 
./configure --prefix=$INSTALL_DIR 
make
make check 
make install

和其余相似技术的比拟

简略说来 Protobuf 的次要长处就是:简略,快。

Total Time 指一个对象操作的整个工夫,包含创建对象,将对象序列化为内存中的字节序列,而后再反序列化的整个过程。从测试后果能够看到 Protobuf 的问题很好,感兴趣的读者能够自行到网站 https://github.com/eishay/jvm… 上理解更具体的测试后果。

退出移动版