特点:
① 不需要打包/解包。它的结构化数据都以二进制形式保存,不需要数据解析过程,数据也可以方便传递
② 省内存、性能好
③ 强类型系统,在编译阶段就能预防一些bug的产生
④ 跨平台(C++11/Java/Go/C#)
FlatBuffers和Protocol Buffers以及Json的比较:
1)FlatBuffers的功能和Protocol Buffers很像,他们的最大不同点是在使用具体的数据之前,FlatBuffers不需要解析/解包的过程。同时,在工程中使用时,FlatBuffers的引用比Protocol Buffers方便很多,只需要包含两三个头文件即可
2)JSON作为数据交换格式,被广泛用户各种动态语言之间(当然也包括静态语言)。它的优点是易于理解(可读性好),同时它的最大的缺点那就是解析时的性能问题了。而且因为它的动态类型特点,你的代码可能还需要多写好多类型、数据检查逻辑。
操作步骤一般如下:
1.先编写一个用来定义数据结构的schema(IDL,接口定义)文件,如下图所示。
2.然后使用FlatBuffer编译器flatc.exe生成数据结构源代码(C++头文件或者Java类)。