热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Flatbuffers与CBOR

如何解决《Flatbuffers与CBOR》经验,为你挑选了1个好方法。

请帮助建议Flatbuffers和CBOR协议的优缺点。这两种二进制格式都声称在它们的网站上是不错的,但是我无法在两者之间做出一些很好的区别。

平面缓冲区:

优点:

    严格输入FlatBuffer,Cap'n proto和其他类似解决方案被视为提高性能的关键点,因为不需要额外的编码/解码。

    数据模型允许使用紧凑的数据结构和快速访问轻松地对类型化的对象进行偏移

    FlatBuffers不需要解析/拆包步骤即可生成辅助表示形式,然后您才能访问经常与按对象存储分配相关的数据。

坏处:

    像CBOR一样新的和不标准化的

CBOR

优点:

    可以完全在流中创建和处理而无需额外的内存

    不必预先定义任何模式,因为我们的数据是动态的且可变的

    这是IETF的一项开放国际标准,因此比专有标准更好。

    它设计用于低内存,非转换,基于流的处理,同时还提供其他数据类型的扩展

坏处:

    CBOR表示它遵循JSON模型(因此不是严格类型的对象)

    它以相同类型的对象(字符串,整数,映射等)开头。

PS:
与平缓缓冲区相比,感觉CBOR中的类型管理将在性能上付出高昂的代价,但是由于CBOR是标准化协议,因此如果这种差异不大,我倾向于使用它。请让我知道你们都推荐两个,为什么。



1> Aardappel..:

我认为您已经很清楚地自己阐明了。FlatBuffer的优势在于无需解析/拆包/分配即可访问数据,这在某些情况下会带来严重的性能优势。但是,如果这对您而言无关紧要,例如协议缓冲区也可以正常工作。

数据中的强类型和动态类型也很重要。如果我想事先没有约束的通用数据存储,则只使用后者。

顺便说一句,如果出于某种原因您更喜欢动态类型,但又希望就地访问具有性能优势,那么实际上存在一种将两者结合的格式:https : //google.github.io/flatbuffers/flexbuffers。 html

FlatBuffers不是“专有的”。它可能是由Google设计的,但是它是开源的,并被许多其他公司所依赖。


推荐阅读
  • golang基础-protobuf使用,Go语言社区,Golang程序员人脉社 ... [详细]
  • 本文探讨了Web开发与游戏开发之间的主要区别,旨在帮助开发者更好地理解两种开发领域的特性和需求。文章基于作者的实际经验和网络资料整理而成。 ... [详细]
  • protobuf 安装_protobuf详解
    protobuf详解一、什么是protobufprotobuf全称GoogleProtocolBuffers,是google开发的的一套用于数据存储,网络通信时用于协议编解码的工具 ... [详细]
  • 学习gRPC1.工作原理是什么
    什么是gRPCgRPC已经成为实现需要大规模快速运行的分布式软件系统的一项重要技术。简而言之,gRPC是一个API框架,它允许一个程序在互联网上的一个位置传递数据到另一个位置的另一 ... [详细]
  • gRPC框架学习:2、ProtocolBuffers学习文章目录gRPC框架学习:2、ProtocolBuffers学习1.前言2.定义消息类型(1). ... [详细]
  • https:github.comprotocolbuffersprotobufreleases报错:Pleasespecifyeither:•ago_packag ... [详细]
  • Google ProtoBuf的使用
    Google的protobuf太好用了,又小,读写又快跑步快慢受鞋的影响太大了,但是造鞋的工具研究起来还是很有难度的,百度 ... [详细]
  • Go实战--golang中使用gRPC和Protobuf实现高性能api(golangprotobuf、google.golang.orggrpc),Go语言社区,Golang程序 ... [详细]
  • 体量|更多_初识protobuf ... [详细]
  • 利用Java与Tesseract-OCR实现数字识别
    本文深入探讨了如何利用Java语言结合Tesseract-OCR技术来实现图像中的数字识别功能,旨在为开发者提供详细的指导和实践案例。 ... [详细]
  • egret protobufjs安装使用
    先安装好nodeprotobufjsgithub地址:https:github.comdcodeIOprotobuf.js#installation安装:npminstallprotobufjs-g安装全局protobufjsnpm ... [详细]
  • 本文介绍了如何通过ARM编译器组件重定向标准C运行时库的I/O函数,以适应不同的硬件平台。原文链接:https://www.keil.com/pack/doc/compiler/RetargetIO/html/retarget_overview.html ... [详细]
  • 利用YAML配置Resilience4J的Circuit Breaker
    本文探讨了Resilience4j作为现代Java应用程序中不可或缺的容错工具,特别介绍了如何通过YAML文件配置Circuit Breaker以提高服务的弹性和稳定性。 ... [详细]
  • 尽管PHP是一种强大且灵活的Web开发语言,但开发者在使用过程中常会陷入一些典型的陷阱。本文旨在列出PHP开发中最为常见的10种错误,并提供相应的预防建议。 ... [详细]
  • 本文详细探讨了JavaScript中的闭包与柯里化技术,这两者是函数式编程的重要组成部分,对提升代码的灵活性和可维护性具有重要作用。 ... [详细]
author-avatar
123
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有