我试图通过为我拥有的最重复的结构创建一个压缩模式来优化我的 flatbuffer 大小(仅使用 20 LSB 位的整数并将它们切成 64 位字),结果不是我所期望的:文件大小增长了一点,而不是我期望的剧烈压缩,为什么我下面的 2 ulong + 1 uint 结构(第二种情况)比生成的文件中的显式结构(第一种情况)占用更多的空间?在我的示例中,使用显式结构的 2.4Mb 文件变成使用压缩结构的 2.6M....
显式结构,直接访问字段:
table VObject {
m_field1:uint;
m_field2:uint;
m_field3:ushort;
m_field4:ushort;
m_field5:uint;
m_field6:uint;
m_field7:uint;
m_field8:uint;
}
压缩结构,需要使用 20 位和 16 位掩码进行编码和解码:
table VObject {
m_field1:ulong;
m_field2:ulong;
m_field3:uint;
}