protobuf的优缺点

优点

  • 高效性:protobuf使用二进制进行数据编码,体积更小传输速度 更快,解析速度也更快

  • 跨平台:使用二进制编码进行传输,不同平台的编解码都可用 ,但如果是json这种直接以文本文件进行传输,跨平台之后就可能用不了,因此protibuf支持跨语言传输 ,如c++、java、python等,使得不同语言编写的程序之间可以方便的进行数据交换

  • 向后兼容性 :protobuf可以在不破坏旧数据结构的情况下更新数据结构,添加新的字段

  • 类型安全 :protobuf支持静态类型检查,可以在编译时捕获类型错误

缺点

  • 可读性差

  • 灵活性不足:相比于json的灵活格式,protobuf的消息类型需要在编译时静态定义,不支持动态添加和删除字段

  • 通用性差:json可以任何语言都支持,但是protobuf需要专门的解析库

相关推荐
程序员潘子2 分钟前
【保姆级教程】B 站缓存 m4s 文件转 MP4,无损合成一行命令搞定
缓存·ffmpeg·ffmpeg\
Micro麦可乐3 分钟前
Redis只会用来做缓存?解锁Redis非缓存的九个应用场景,90%程序员不知道的隐藏技能
数据库·redis·缓存·消息队列·分布式锁·延迟队列·布隆过滤器
键盘鼓手苏苏6 分钟前
Flutter 三方库 persistent_cache_simple 的鸿蒙化适配指南 - 实现具备磁盘溢出淘汰与极简 API 的本地持久化缓存、支持端侧资源异步落地与状态秒开实战
flutter·缓存·harmonyos
21号 17 分钟前
10.Redis 缓存
数据库·redis·缓存
从零开始的-CodeNinja之路8 分钟前
【Redis】Redis 缓存应用、淘汰机制—(四)
java·redis·缓存
星辰徐哥8 分钟前
CDN工作原理:节点缓存、智能调度,减少跨网传输延迟
服务器·缓存·php
星辰徐哥12 分钟前
ARP缓存表:作用、查看方法与刷新技巧
开发语言·缓存·php
Jul1en_2 小时前
【Redis】String 类型命令、编码方式与应用场景
数据库·redis·缓存
庞轩px3 小时前
线程本地缓存?CPU缓存!
缓存·线程·cpu·volatile·可见性·本地内存
空太Jun4 小时前
Redis 5大核心数据类型与持久化实战
数据库·redis·缓存