• jsonsmart,msgpack,protocalbuffer谁更强?


    最近在做一个ANDROID的应用,和服务器进行交互的时候就考虑到了对象序列化的问题。

    翻遍网络,最后选出三个种子选手:

     jsonsmart  json格式中的绝对王者 速度快,信息少

    msgpack  二进制序列化的怪杰,号称比protocal buffer快四倍,比json快10倍

    protocal buffer GOOGLE出品,号称比XML快百倍

    对着三个东西同样条件下测试了一下,主要是测试谁的包最小,因为和处理速度相比,网络传输更加敏感。

    结论:

    如果你的数据包以二进制数据为主,那么王者是msgpack.

    如果你的数据包以字符串为主,那么王者是jsonsmart!!!!

    msgpack和protocal buffer在以字符串为主的数据包中,表现完全相同。

    具体的说,JSONsmart的数据只相当于其他两个的68.5%。也就是说领先32%。

    我想这个结果可能和很多人想的不太一样,大家可以自己去测试吧。

    也不难看出我的倾向是选择JSONsmart 了,因为我们的的数据还是主要是以字符串为主的。我想绝大部分的ANDROID应用系统都应该是以字符串为主的。

    不过呢,要说编程最简单,还是msgpack 了。解析对象化 jsonsmart做的很差!这点让人郁闷,怎么就不能十全十美呢!不过2.0貌似有改善。

    编程最麻烦是  protocal buffer!我对GOOGLE的程序设计水平一直不太欣赏。这次又给我了一点加强。

    因此 mspack和protocal buffer 水准比较接近。但是二进制数据的综合性能还是 msgpack胜出。

    从部署的角度说,

    jsonsmart 1.1只需要50K。

    protobuffer2.5需要529K

    msgpack 0.6.7需要923K(只是用序列化功能,不用RPC,如果要用RPC,还要加上90K),其实 msgpack 本身只需要272K,但是它依赖的javassist.jar需要689K!!!!

    从这个角度说msgpack是最失败的了。有几个愿意为了是用你的序列化功能就让ANDROID程序增加923K的???

    JSONsmart再一次成为王者。

    她的缺陷:1.反序列化对象化作的不好 2.数据包是字符

    要克服第一点,可以考虑采用jsonsmart 2.0,要解决第二个问题,可以自己写一个简单的加解密程序。

    如果这样,ANDORID方案就再也没有比jsonsmart 更好的方案了!

    因此我最后选择了jsonsmart 方案,事实证明,效果完美。

  • 相关阅读:
    树型表的设计 上海
    FTP通讯封装 上海
    线程淡写 上海
    TCP通讯故障 上海
    设计模式引导 上海
    初试Delegate 上海
    c# 扫描端口 上海
    攻读计算机研究生的看法(转载) 上海
    挖掘表字段中的汉字 上海
    新生活运动 上海
  • 原文地址:https://www.cnblogs.com/softman11/p/2962424.html
Copyright © 2020-2023  润新知