1. 什么是FlatBuffers
Google发布了FlatBuffers,一个跨平台,提供了C++/Java接口,注重性能和资源使用的序列化(Serialization)类库。
尤其是FlatBuffers更适用移动设备,他们要求更高的新能,更低的资源需求(内存、带宽、CPU等)。
1.1. 它的特点如下:
不需要打包/解包。它的结构化数据都以二进制形式保存,不需要数据解析过程,数据也可以方便传递。
省内存、性能好(见附录1)
强类型系统,在编译阶段就能预防一些bug的产生
跨平台(C++11/Java)
FlatBuffers和Protocol Buffers很像,他们的最大不同点是在使用具体的数据之前,FlatBuffers不需要解析/解包的过程。
1.3. 和JSON的不同之处
Google发布了FlatBuffers,一个跨平台,提供了C++/Java接口,注重性能和资源使用的序列化(Serialization)类库。
尤其是FlatBuffers更适用移动设备,他们要求更高的新能,更低的资源需求(内存、带宽、CPU等)。
1.1. 它的特点如下:
不需要打包/解包。它的结构化数据都以二进制形式保存,不需要数据解析过程,数据也可以方便传递。
省内存、性能好(见附录1)
强类型系统,在编译阶段就能预防一些bug的产生
跨平台(C++11/Java)
等等。
FlatBuffers和Protocol Buffers很像,他们的最大不同点是在使用具体的数据之前,FlatBuffers不需要解析/解包的过程。
1.3. 和JSON的不同之处
JSON作为数据交换格式,被广泛用户各种动态语言之间(当然也包括静态语言)。它的有点事易于理解(可读性好),同时它的最大的缺点那就是解析时的性能问题了。而且因为它的动态类型特点,你的代码可能还需要多写好多类型、数据检查逻辑。
---------------------------------------------------------------------------------------
Flatbuffers的idl的语法主要参考[http://google.github.io/flatbuffers/md__schemas.html ]
源代码在GitHub:https://github.com/google/flatbuffers
---------------------------------------------------------------------------------------
Protocol Buffers介绍
http://blog.youkuaiyun.com/program_think/article/details/4229773
http://www.docin.com/p-355526866.html