跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • [binary protocol | text protocol] 大家都采用什么序列化方式,自定义还是现成的轮子?
未分類
6 1 月 2021

[binary protocol | text protocol] 大家都采用什么序列化方式,自定义还是现成的轮子?

[binary protocol | text protocol] 大家都采用什么序列化方式,自定义还是现成的轮子?

資深大佬 : haosamax 3

最近在看《设计数据密集型应用》,看到编码部分,又想到框架中的自定义编码,有所想: 框架自定义的序列化方式很难用(字段值编码后拼接,无需编码名称),每次处理循环体都要手动处理操作字节,而且前后兼容,想问下大伙:1 、为什么搜索结果都说 binary protocol 比 textprotocol 快; 2 、项目用的 protocol 是? 3 、有没有一种可读性高并且速度快的编码方式?

大佬有話說 (19)

  • 資深大佬 : oott123

    overhead 低信息密度高自然就快,本前端表示除了 json 和 msgpack 别的都不用(

  • 資深大佬 : chendy

    1. 二进制少一轮字符串解码编码,表示数字和布尔用的字节更少,不考虑人类阅读可以用更紧凑的格式,代价就是直接拿给人类看基本看不懂
    2. binary 只想到 protobuf,text 只想到 json
    3. json 也不慢

  • 資深大佬 : togou

    解析二进制比 字符串各种查找 配对肯定快 xml json 肯定比不过 pb tars 这种二进制协议啊

  • 資深大佬 : PureWhiteWu

    binary

  • 主 資深大佬 : haosamax

    各位说的是,为社么快这块理解了

  • 資深大佬 : liian2019

    json 和 protobuf

  • 資深大佬 : MeteorCat

    json 主要是冗余太多了,还套个 http 协议,但是可视化很方便,基本上有个 web 浏览器就能调试

  • 主 資深大佬 : haosamax

    @liian2019 那如果更换为 protobuf,有没有 JavaBean 生成.proto 的工具

  • 資深大佬 : icyalala

    protobuf 有强类型这个 json 比不了,但是单看性能,不一定比 json + gzip + simdjson 快到哪里去,而且 pb 还会生成一大坨代码出来难用的要死。但凡想要点可读性那选 json 没错。

  • 資深大佬 : chenqh

    json 太好调试了呀,二进制的东西调试成本比 json 高太多了

  • 資深大佬 : liian2019

    @haosamax 一般都是 protobuf 转 java

  • 資深大佬 : xiangbohua

    没什么特别需求无脑 json,或者 xml 啊,搞协议的搞搞 protobuf 啥的吧。

  • 資深大佬 : xiangbohua

    哎,参加工作的第一年,一个做虚拟化的公司,用的 Protobuf 当时烧了不少脑细胞

  • 資深大佬 : 12101111

    但是现在 json 的序列化用上 SIMD 之后速度惊人, 实际上也是按照二进制的方式解析的, 只不过按弱类型操作 json 容易有 bug

  • 資深大佬 : nthhdy

    binary 是快,但基本上就意味着可读性低,一般必须得用工具才能看。对性能要求不高时,json 很好用,可读性好,编码本身的扩展性也好,改字段、类型很容易。

  • 主 資深大佬 : haosamax

    @xiangbohua 内部系统 socket 通讯,自定义的协议用着有点 egg pain

  • 主 資深大佬 : haosamax

    @liian2019 是的。如果迁移的话岂不是都得写一遍 proto 文件

  • 資深大佬 : daimiaopeng

    要看应用场景是什么,要是对流量要需求比较高的话,比如说网络游戏,那肯定用偏二进制方面的编码

  • 資深大佬 : liian2019

    @haosamax 这个没有接触过,可以 google 看看有没有什么好的解决方案。一般协议应该也不会太多吧

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具