Flatbuffers使用解析
在今日头条偶然看到一个技术分享视频,标题很唬人:json之后下一代数据交换格式(大致是这样),不明觉厉,赶紧打开观看,原来Flatbuffers是Google为游戏或者其他对性能要求很高的应用开发的一种数据交换格式。小小试用了下,掌握了基本用法,特此记录,以分享和备忘。
相比json,存储4M数据的json,转化为flatbuffers只需要2M左右,解析时,json花费800多ms,flatbuffer每次都在10ms以内,json解析时应用内存占用飙升,flatbuffer几乎不变。 各种数据交换格式性能对比介绍及flatbuffer简介 。
使用步骤:
一、下载依赖、编译器
java使用时,需用到一下四个类:见下图:
编译器即是faltc:用于从数据结构schema文件生成相应类。好比json生成bean文件。可以直接下载exe文件,也可以下载源码自行生成相应程序,Flatbuffers官方API有详细说明如何生成编译器。
二、编写schema文件
示例json文件test.json如下:
{
"items": [{
"id": 1001,
"name": "张三",
"code": 1222,
"carList": [{
"id": 10001,
"number": 123456321,
"describle": "这是张三第一辆车"
}]
}, {
"id": 1002,
"name": "李四",
"code": 1123,
"carList": [{
"id": 10001,
"number": 123456001,
"describle": "这是李四第一辆车"
}, {
"id": 10002,
"number": 123456002,
"describle": "这是李四第二辆车"
}, {
"id": 10003,
"number": 123456003,
"describle": "这是李四第三辆车"
}]
}],
"stateid":404,
"time":20161127
}
编写对应的schema文件test.fb如下:
namespace Fltest;
table Car{
id:int;
number:long;
describle