这是我对flatbuffer内存结构的一些分析,希望可以帮助大家更好的使用flatbuffer
- 定义的flatbuffer结构
- 基本的测试 分析flat结构布局
- 交换字段赋值的顺序
- 如果直接填高位字段
- 嵌套table的结构模型
- 填充两个相同的结构体 填充字段的顺序相同
- 填充两个相同的结构体 填充字段的顺序不同
- 总结
定义的flatbuffer结构
下面所以的测试都是基于这两个结构测试的,先不考虑类型string和数组,只考虑字段为标量的情况:
标量:长度固定的变量uint,int,float等
非标量: string,数组
table T {
field1:int;
field2:int;
field3:int;
field4:int;
field5:int;
field6:int;
field7:int;
field8:int;
field9:int;
field10:int;
}
table TestT {
t1:proto.T;
t2:proto.T;
t3:proto.T;
}
基本的测试 分析flat结构布局
生成一个t