zoukankan      html  css  js  c++  java
  • xml json protobuf

     

    本文为原创,转载请注明:http://www.cnblogs.com/gistao/

     

    Background

    xml,json,protobuf都是格式化手段,喜欢哪个,会用哪个,该用哪个,用哪个?

    随便提一下facebook的thrift,也提供了序列化/反序列化功能,支持语言众多,rpc场景被大量采用,但性能相比protobuf还是弱一些,这是google的benchmarking。

    XML

    • 可读可编辑。
    • 格式描述非常详细/冗余。
    • 不需要schema也可以解析。
    • 使用者众多,支持工具也众多,完全不用担心成孤岛。

    Json

    • 可读可编辑,但是较长的json没有xml的一目了然。
    • 相比较xml,json更简介,解析也更快
    • 也不需要schema就可以解析。
    • 不需要担心工具问题,应用较广。

    Protobuf

    • 二进制格式,所以没有可读性。不过google开发有wireshark插件以便定位问题。
    • 解析需要schema(.proto)。
    • 速度异常的快,google的对外说法是:相比xml,are 20 to 100 times faster。
    • 使用非常简单,可自动生成访问数据的类。
    • 仅支持c++,java,python。不过很多语言自己写了实现,比如php-protobuf

    Final

    个人而言,如果我的服务对象是浏览器,或者我提供了公用api,我会使用json。而服务内部之间的api会使用protobuf。

  • 相关阅读:
    Python-单例模式
    Django 内置模板标签和过滤器
    Python Built-in Function 学习笔记
    Django 中间件
    Django Form
    Ajax
    Django中cookie和session
    Django中的QuerySet
    Django模型和ORM
    wordpress添加子主题
  • 原文地址:https://www.cnblogs.com/gistao/p/4369216.html
Copyright © 2011-2022 走看看