写点什么

谷歌开源高效、跨平台的序列化库 FlatBuffers

  • 2014-06-23
  • 本文字数:727 字

    阅读完需:约 2 分钟

近日,谷歌“Fun Propulsion Labs”团队开源了FlatBuffers 。该库的构建是专门为游戏开发人员的性能需求提供支持,它将序列化数据存储在缓存中,这些数据既可以存储在文件中,又可以通过网络原样传输,而不需要任何解析开销。

FlatBuffers 有如下一些关键特性——

  • 访问序列化数据不需要打包 / 拆包
  • 节省内存而且访问速度快——缓存只占用访问数据所需要的内存;不需要任何额外的内存。
  • 灵活性——通过可选字段向前向后兼容
  • 代码规模小
  • 强类型——错误在编译时捕获,而不是在运行时
  • 便利性——生成的 C++ 头文件代码简洁。如果需要,有一项可选功能可以用来在运行时高效解析 Schema 和 JSON-like 格式的文本。
  • 跨平台——使用 C++ 编写,不依赖 STL 之外的库,因此可以用于任何有 C++ 编辑器的平台。当前,该项目包含构建方法和在 Android、Linux、Windows 和 OSX 等操作系统上使用该库的示例。

与 Protocol Buffers 或 JSON Parsing 这样的可选方案相比,FlatBuffers 的优势在于开销更小,这主要是由于它没有解析过程。

在 C++ 中使用 FlatBuffers 包含以下步骤——

  • 使用专用的 DSL 创建 schema 文件
  • 使用 schema 编译器生成 C++ 头文件
  • 在用户程序中包含生成的头文件(而且需要在路径中包含 flatbuffers/flatbuffers.h 文件)
  • 使用 FlatBufferBuilder 类(它会构造一个平面二进制缓冲区)读写数据

正如前期讨论组中的讨论,FlatBuffers 明显有些不完善的地方。对Java 的支持还在试验阶段。对C#的支持是要求最多的功能之一,可能在下个版本提供。

读者可以查阅文档来了解更多信息。

Cap’n Proto 也是一个值得了解一下的项目,它旨在通过避免编码 / 解码过程来获得性能收益。

查看英文原文:**** Google Open-Sources FlatBuffers:Efficient, Cross-Platform, Serialization Library

2014-06-23 23:527925
用户头像

发布了 256 篇内容, 共 95.4 次阅读, 收获喜欢 12 次。

关注

评论

发布
暂无评论
发现更多内容

提升运营效率、降低获客成本,华为云Flexus数字人有效赋能医疗机构

YG科技

打破“不可能三角”!华为云Flexus数字人完美契合中小企业需求

YG科技

华为云Flexus数字人制作高效、性价比高,助力教育营销焕新升级

YG科技

华为云Flexus数字人创新技术,赋能中小企业打造个性化营销体验

轶天下事

推动数字人技术红利下沉!华为云Flexus数字人引领营销方式变革

轶天下事

医疗科普新助力!华为云Flexus数字人引领行业变革

轶天下事

零经验也能轻松上手!华为云Flexus数字人专为中小企业而生

YG科技

步入“寻常百姓家”!华为云Flexus数字人进一步降低技术使用门槛

YG科技

门槛更低、效果更好!华为云Flexus数字人开启数字化营销新时代.

YG科技

以技术进步创造普惠价值!华为云Flexus数字人赋能中小企业营销创新

轶天下事

缺创意、缺流量、缺客户?华为云Flexus数字人赋能中小企业营销创新

YG科技

超低门槛体验华为云Flexus数字人,让数字人技术不再“高高在上

YG科技

提高营销效率、革新营销方式!华为云Flexus数字人全面赋能中小企业

YG科技

全方位融入生活!华为云Flexus数字人助力中小企业实现商业成功

轶天下事

千元级成本、小时级制作时长,华为云Flexus数字人有多高效?

轶天下事

Rego 101

大可不加冰

OPA rego policy-as-code kubernetes gatekeeper

数字人加速奔向大众生活!华为云Flexus数字人完美契合中小企业需求

YG科技

打破传统!华为云Flexus数字人重塑教培行业的营销模式

YG科技

华为云Flexus数字人全场景渗透,赋能千行百业营销升级

轶天下事

推动数字人技术广泛应用!华为云Flexus让创作更简单、更高效

轶天下事

便捷、省心、超值体验!华为云Flexus数字人持续拓宽中小企业应用场景

轶天下事

低成本高效率,华为云Flexus数字人解锁中小企业增长新密码!

轶天下事

从教育培训机构的角度谈谈,华为云Flexus数字人对中小企业有何价值

轶天下事

使用阿里云操作系统控制台排查内存溢出

Yan-英杰

服务器 云服务

谷歌开源高效、跨平台的序列化库FlatBuffers_Java_Roopesh Shenoy_InfoQ精选文章