news 2026/2/26 9:37:19

什么是Protobuf?一个例子比较Pb和JSON字节大小

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
什么是Protobuf?一个例子比较Pb和JSON字节大小

文章目录

  • 什么是Protobuf?
  • 如何使用Protobuf ?
  • 什么是 RPC应用程序之间的通信?
  • Protobuf 和JSON 格式之间的区别是什么?
  • Protobuf 的三个选项是什么?
  • 例子分别计算Pb和Json大小
  • 结语

什么是Protobuf?

你可能听说过 JSON 、XML 和其他网络开发缩略语和流行语。但是,Protobuf 呢?有可能,你在你的网络开发旅行中遇到过这个词,但不太清楚它是什么意思。Protobuf 是指Protocol Buffers

Protocol Buffers ( )是一种由谷歌开发的数据序列化格式。它以二进制形式有效而紧凑地存储结构化数据,允许在网络连接上更快地传输支持广泛的所选编程语言,并且是平台独立的,这意味着使用它编写的程序可以很容易地移植到其他平台

此外,它是创建结构化数据的一种有效而强大的方式,可用于各种应用,如网络服务、数据库。 RPC系统和文件格式。它支持许多数据类型,包括字符串、整数、浮点、布尔、枚举(枚举)、地图(关联数组)等等。独立于语言的语法使使用不同的编程语言编写的程序能够可靠地相互通信

此外,Protobuf 格式比其他格式,如XML或JSON ,具有若干优势。由于结构化数据以二进制格式存储,它比基于文本的格式,如XML或JSON 格式要小得多,使其在网络上的传输速度加快。此外,Protobuf 被设计为易于扩展,使其成为处理快速变化的数据结构和新功能的理想选择。最后,从Protobuf 特别 生成的源代码 可以进行速度优化,从而使应用程序使用更少的内存。

这些优势使Protocol Buffers ,成为高效数据存储和系统间通信的理想选择。随着企业越来越依赖分布式系统、网络服务和移动应用程序,它在开发者中越来越受欢迎。Protocol Buffers ,像谷歌、Twitter和Dropbox ,以及希望从其灵活性和性能中获益的小型创业公司都在使用。

Protobuf 与其他格式相比,"Language "可能相对陌生,但它正在快速普及,许多开发者开始认识到它的潜力。凭借其强大的功能和易用性(结构化数据),不难看出为什么 正在成为开发者的热门选择。

如何使用Protobuf ?

Protocol Buffers ( )是一种语言中立、平台中立、可扩展的结构化数据序列化机制,用于通信协议、数据存储等。它是一个由谷歌开发的开源项目,为应用程序之间的信息交换提供了一个有效和可靠的手段。你可以决定一个专门生成的源代码如何读取数据。

Protobuf 可以用来创建高效的 API,可以作为系统之间的数据流使用。协议缓冲区是使数据交换更有效的好方法,因为它需要更少的带宽,并且比标准的XML或 方案具有更小的消息尺寸。

它还可以以有组织的方式存储结构化数据。它允许开发者定义数据结构,然后将其序列化为二进制格式,使数据可以跨系统移植。这使得在数据库或其他分布式系统中存储数据变得容易。当数据结构发生变化时,它还能确保向后兼容。

此外,它可以被用于 RPC应用程序之间的通信。例如,你可以使用Protobuf 格式来定义两个应用程序之间发送的消息。这使得应用程序之间很容易进行有效的通信,因为他们可以简单地使用相同的消息结构来序列化和反序列化数据。

什么是 RPC应用程序之间的通信?

RPC (远程程序调用)是一种通信类型,允许应用程序通过网络相互通信。它使一个应用程序的功能或程序可以从另一个应用程序中调用,允许分布式计算和更大的可扩展性。

RPC 呼叫的工作原理是,从调用的应用程序(也称为客户端)向另一个应用程序(称为服务器)发送请求,并收到一个响应。请求通常以数据包的形式发送,其中包含需要执行的程序的信息,如参数和返回值。

一旦服务器收到数据包,它就会对其进行处理,并返回一个带有任何相关数据或结果的响应。

Protobuf 这也使开发人员能够创建客户/服务器应用程序,使其能够相互交互,而不必担心不同通信协议的细微差别。它使编写跨平台的应用程序变得容易,这些应用程序可以使用相同的消息格式相互通信。

Protobuf 和JSON 格式之间的区别是什么?

Protobuf 和JSON 的主要区别是数据的编码方式。Protobuf 以二进制格式编码数据,而JSON 使用人类可读的纯文本格式。这使得Protobuf 在网络上传输数据时明显更快、更有效,因为它在传输相同数量的信息时需要的带宽比JSON 要少。

JSON 在基于网络的环境中,由于JavaScript和HTML都可以很容易地阅读它,所以更容易使用。此外, JSON的优点是可以被人类阅读,使调试和故障排除比 。

Protobuf由于它的速度明显快于JSON ,因此在网络上所需的处理能力较低。这使得它成为需要数据流或设备间实时通信的应用的理想选择。此外,由于Protobuf 将数据编码为二进制格式,安全性得到提高,因为恶意行为者更难改变数据而不被发现。

因此,你可以把Protobuf 和JSON 之间的差异分解为四个主要方面:速度、大小、数据类型和平台兼容性。

Protobuf 是需要速度、大小效率和复杂数据类型的应用程序的首选数据格式。它是开发分布式系统或网络带宽有限的移动应用的绝佳选择。相比之下,JSON由于许多语言和平台都支持它,所以它更简单,更被广泛接受。因此,它可以在需要兼容性和简单性而不是性能的情况下使用。最终,使用哪种取决于你的应用程序的具体需求。

总之,Protobuf 和JSON 都有其优点和缺点,这取决于你在建立一个应用程序时最优先考虑的功能。如果你需要更快的读/写速度,更小的文件大小,以及复杂的数据类型,那么Protobuf 是更好的选择。然而,如果简单性和平台兼容性对你来说更重要,JSON 可能更好。最终,决定将取决于你的应用程序的具体要求。

Protobuf 的三个选项是什么?

Protobuf 的三个选项是:1)proto2,2)proto3,和3) gRPC 。

这三个选项有助于用Protobuf 编码结构化数据,但许多人更喜欢gRPC ,因为它比其他两个选项有性能优势。

例子分别计算Pb和Json大小

重复出现的主要是字段名(group/key/value)和 JSON 的结构符号({ } : , ")。

字段值(比如 “a”、“k1”、“hello”)当然也每条都会出现,这个不算“浪费”,因为那是你真正要传的数据。

结语

总之,Protocol Buffers 是一种高效且可扩展的结构化数据编码机制。它们是类型安全的,语言中立的,并且比JSON 或XML等替代方案需要更少的带宽。如果你需要开发一个通过网络与其他应用程序有效通信或存储数据的应用程序,请考虑使用Protocol Buffers 。

?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_96,text_5rqQ5Luj56CB4oCi5a64,size_16,color_FFFFFF,t_70)

之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/26 1:39:21

AlertDialog.show()中message的字体大小和颜色如何修改?

本问答帖原创发布在华为开发者联盟社区 ,欢迎开发者前往论坛提问交流。 AlertDialog.show()中不能修改message里内容的字体颜色和大小,请问如何解决? 解决方案: AlertDialog无法修改自定义字体颜色和大小。建议使用coustomDialog&#xff0c…

作者头像 李华
网站建设 2026/2/25 1:38:47

bindpopup设置popupColor属性不生效?

本问答帖原创发布在华为开发者联盟社区 ,欢迎开发者前往论坛提问交流。 bindpopup绑定在被foreach循环多次的组件上,气泡颜色(popupColor)设置成黑色但未生效,导致白色字体显示不清晰。 解决方案: bindpo…

作者头像 李华
网站建设 2026/2/25 20:36:49

list怎么更新单个item的ui?

本问答帖原创发布在华为开发者联盟社区 ,欢迎开发者前往论坛提问交流。 问题描述: 如果要像微信那样在二维码的中间加个头像应该怎么做,是否有对应API? 解决方案: 可以通过stack布局,将Image组件放在QRCode组件上实…

作者头像 李华
网站建设 2026/2/25 19:54:53

Java awt包不存在错误解决:检查JDK安装与环境变量配置

当你开始学习Java GUI编程或维护一个老项目时,很可能会在编译或运行阶段遇到“程序包 java.awt 不存在”的错误。这个错误意味着你的Java开发环境在编译时找不到核心的AWT图形工具包。AWT是Java标准库的一部分,通常不会缺失,但特定环境配置或…

作者头像 李华
网站建设 2026/2/25 14:15:31

2026为何领先企业选择河北深圳创意设计公司的机械装置方案?

去年春天,上海某艺术馆的中央展厅里,一件名为《共鸣》的装置前总是排着长队。观众戴上一副特制耳机,对着一个巨大的金属花瓣低语,花瓣竟随之缓缓开合,并将声音转化为可视的光波,在空间中荡漾。这件融合了声…

作者头像 李华