JSON与protocol buffer效率比较

https://blog.csdn.net/sudaobo/article/details/5439994

对于较多信息的存储和较大文件,protocol buffer的写入和解析效率明显高很多。但是JSON格式的可读性明显要好。

JSON

总共写65535条Data记录到文件中,测试结果如下:

生成的文件尺寸是23,733k。

生成文件的时间是12.80秒。

从该文件中解析的时间是11.50秒。

 

Protocol Buffer

总共写65535条Data记录到文件中,测试结果如下:

生成的文件尺寸是3760k。

生成文件的时间是0.08秒。

从该文件中解析的时间是0.07秒。

 

JSON、Protocol Buffer都属于数据交换格式,都可以用于保存信息。最近对两者保存信息到文件中和从文件中解析信息的效率进行了测试比较。

 

机器配置

CPU: AMD Athlon 64 X2 4600+

内存: 2G, DDR2 8000

操作系统: win7 32bit

硬盘:WD3200AAJS ATA

 

Protocol Buffer

Protocol Buffer格式定义:

 

message Data {

    enum VarType {

    BOOL = 0;

    INT = 1;

    FLOAT = 2;

    }

 

    required int32 id = 1;

    required VarType type = 2;

    required string name = 3;

    required int32 src = 4;

 

    required int32 alarm_group = 5;

    required int32 alarm_pri = 6;

    required int32 flag = 7;

    required float alarm_ll = 8;

    required float alarm_l = 9;

    required float alarm_h = 10;

    required float alarm_hh = 11;

    required float alarm_dead = 12;

    required int32 history = 13;

    required float history_rate = 14;

 

}

 

message DataSet {

    required int32 last_id = 1;

    repeated Data var = 2;

}

 

总共写65535条Data记录到文件中,测试结果如下:

生成的文件尺寸是3760k。

生成文件的时间是0.08秒。

从该文件中解析的时间是0.07秒。

 

JSON

JSON格式定义:

 

 

{

"GlobalDataSet" : 

[

 

{

"alarm_dead" : 0.0030,

"alarm_flag" : 51,

"alarm_group" : 100,

"alarm_h" : 1.30,

"alarm_hh" : 1.30,

"alarm_l" : 1.30,

"alarm_ll" : 1.30,

"alarm_pri" : 10,

"description" : "infoddddeeeee",

"history" : 1,

"history_rate" : 0.010,

"id" : 0,

"name" : "gd1",

"src" : 3,

"type" : 1,

"unit" : ""

},

 

... ... 

]

}

 

 

总共写65535条Data记录到文件中,测试结果如下:

生成的文件尺寸是23,733k。

生成文件的时间是12.80秒。

从该文件中解析的时间是11.50秒。

 

测试结论

对于较多信息的存储和较大文件,protocol buffer的写入和解析效率明显高很多。但是JSON格式的可读性明显要好。

--------------------- 作者:sudaobo 来源:CSDN 原文:https://blog.csdn.net/sudaobo/article/details/5439994?utm_source=copy 版权声明:本文为博主原创文章,转载请附上博文链接!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值