zoukankan      html  css  js  c++  java
  • 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 方案,事实证明,效果完美。

  • 相关阅读:
    selenium 操作过程中,元素标红高亮的两种实现方式
    python pytest测试框架介绍五---日志实时输出
    pytest 3.9在python 2.7下的一个bug
    Qt assis tant 帮助集合文档 -由.qhcp生成.qhc
    Qt assistant .qch显示乱码问题
    qhelpgenerator 由qhp生成qch过程碰到的问题 记录
    Qt creator新建widget项目....no valid kits found.....
    Qt creator 账号
    Qt 写Excel
    Qt获取主窗口
  • 原文地址:https://www.cnblogs.com/softman11/p/2962424.html
Copyright © 2011-2022 走看看