了解Protocol Buffer 首先要知道什么是Protocol Buffer,在编程过程中,当涉及数据交换时,我们往往需要将对象进行序列化然后再传输.常见的序列化的格式有JSON,XML等,这些格式虽然可读性较好,但占用的空间大小并不是最优的.基于此,Google创建了一种名叫Protocol Buffer的序列化格式,它与JSON,XML相比可读性较差,但占用的空间也会更小,在一些对于速度要求比较高的场景中较为常用. Java序列化Protocol Buffer框架-ProtoStuff…
前言 习惯用 Json.XML 数据存储格式的你们,相信大多都没听过Protocol Buffer Protocol Buffer 其实 是 Google出品的一种轻量 & 高效的结构化数据存储格式,性能比 Json.XML 真的强!太!多! 由于 Google出品,我相信Protocol Buffer已经具备足够的吸引力 今天,我将讲解为什么Protocol Buffer的性能如此的好: a. 序列化速度 & 反序列化速度快 b. 数据压缩效果好,即序列化后的数据量体积小 阅读本文前请先…
Protocol buffer是Google出品的一种轻便高效的结构化数据存储格式,可对结构化数据进行序列化,并具有语言无关.平台无关等特点,在通信协议和数据存储等领域已经得到广泛的应用.目前其已经提供 C/C++.Java.Python 等语言的 API. 一.Protocol buffer和XML 在数据通信传输时,一般需要将结构化的数据序列化成流进行传送,接收方再反序列化为原始格式数据进行处理.在Web通信领域,XML应用算是最通用的了.在时间性能上,虽然XML的序列化开销还可以,但是反序…
初识 Protocol Buff是谷歌推出的一种序列化协议. 而Java序列化协议也是一种协议. 两者的目的是, 将对象序列化成字节数组, 或者说是二进制数据, 那么他们之间有什么差异呢. proto对象 要使用PB, 我们需要定义一个proto对象, 其支持的数据类型如下: Protobuf定义了一套基本数据类型.几乎都可以映射到C++\Java等语言的基础数据类型. protobuf 数据类型 描述 打包 C++语言映射 bool 布尔类型 1字节 bool double 64位浮点数 N…
今天闲遐时学习了 Protocol Buffer 在网上看到了许多资料,其中不泛精品,想要详细了解的请看文章结尾的友情链接,我这里就做加深印象,快速入门的一个完整的demo,仅此而已. 学完你可以得到什么: 可以使用protoc工具序列化类,反序列化类 基于java语言的对protoc工具的基本使用 基本protoc的基础api使用 首先我们需要下载官方的编译工具, FQ版: 官方文档 不翻版:我的仓库 整体流程:序列化一个实体类,在反序列出来得到结果: 先放出结果来瞅瞅: 可以看到数据压缩了将…
Protocol Buffer技术详解(Java实例) 该篇Blog和上一篇(C++实例)基本相同,只是面向于我们团队中的Java工程师,毕竟我们项目的前端部分是基于Android开发的,而且我们研发团队中目前主要使用的开发语言就是C++.Java和Python,其中Python主要用于编写各种工具程序.然而为了保证该篇Blog的完整性和独立性,我仍然会将上一篇Blog中已经出现的内容再一次赘述,同时对于Java中特有的部分也会着重介绍.          一.生成目标语言代码.      下面…
习惯用 Json.XML 数据存储格式的你们,相信大多都没听过Protocol Buffer Protocol Buffer 其实 是 Google出品的一种轻量 & 高效的结构化数据存储格式,性能比 Json.XML 真的强!太!多!  由于 Google出品,我相信Protocol Buffer已经具备足够的吸引力 今天,我将详细介绍Protocol Buffer在Android平台 的具体使用 阅读本文前请先阅读:快来看看Google出品的Protocol Buffer,别只会用Json和…
序列化框架性能对比(kryo.hessian.java.protostuff) 简介:   优点 缺点 Kryo 速度快,序列化后体积小 跨语言支持较复杂 Hessian 默认支持跨语言 较慢 Protostuff 速度快,基于protobuf 需静态编译 Protostuff-Runtime 无需静态编译,但序列化前需预先传入schema 不支持无默认构造函数的类,反序列化时需用户自己初始化序列化后的对象,其只负责将该对象进行赋值 Java 使用方便,可序列化所有类 速度慢,占空间      …
Client与Server的网络通信协议传输使用google protobuf,服务器端使用的是Java 一. Protocol Buffersprotobuf全称Google Protocol Buffers,是google开发的的一套用于数据存储,网络通信时用于协议编解码的工具库.它和XML或者JSON差不多,也就是把某种数据结构的信息,以某种格式(XML,JSON)保存起来,protobuf与XML和JSON不同在于,protobuf是基于二进制的.主要用于数据存储.传输协议格式等场合.那…
http://blog.csdn.net/csfreebird/article/details/7624807 varints用于正整数 (无符号整数) varints 是 一个很不错的技术.将一个整数序列化成1或者多个字节.想起以前我们总是使用4字节表示整数,真的很浪费啊.只有真正追求完美的人才会重视每个细节. 我的本篇介绍是https://developers.google.com/protocol-buffers/docs/encoding中的Base 128 Varints一节的逆过程.…