阿里云「飞天发布时刻」2024来啦!新产品、新特性、新能力、新方案,等你来探~ 了解详情
写点什么

谷歌开源高效、跨平台的序列化库 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:527412
用户头像

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

关注

评论

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

MySQL常用函数

Bruce Duan

mysql常用函数

架构师训练营第七周作业

Bruce Xiong

架构师训练营课后总结-性能测试

superman

Week07作业

熊威

报销流程太慢太复杂?区块链技术引入票据系统效率翻一倍

CECBC

数据共享 电子票据 优化业务 可信体系

架构师培训第七周练习

小蚂蚁

性能压测工具

武鹏

第7章总结

武鹏

架构师第七周学习总结

小蚂蚁

一周信创舆情观察(7.13~7.19)

统小信uos

数据库 舆情 芯片

架构师训练营——第7周作业

jiangnanage

手写一个http性能测试工具(golang实现)

2流程序员

Gossip 协议详解

古月木易

Gossip

week07 作业

Safufu

关于性能测试和优化的一些总结和思考

2流程序员

架构师第七周

Tulane

埋点全解析,你最关心的可视化埋点在这里!

易观大数据

《深度工作》学习笔记(1)

石云升

读书笔记 专注 深度工作

全国第一枚企业区块链电子印章诞生

CECBC

萝卜章 区块链印章 全流程上链 e签宝

架构师训练营第7周——学习总结

jiangnanage

Week7作业总结

丿淡忘

总结

孙强

中国区块链服务网络 BSN 宣布集成以太坊等六大知名公链

CECBC

BSN 集成公链 标准框架 底层基础设施

week07总结

Safufu

第7周作业

上山砍柴

Week07总结

熊威

架构师课作业 - 第七周

Tulane

SpringBoot分布式验证码登录方案

Bruce Duan

验证码 Kaptcha

乘风破浪的文思海辉,以及TA的行业数字化“新人设”

脑极体

Gossip 协议详解

奈学教育

Gossip

第七章总结

李白

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