赞
踩
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格式定义:
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格式定义:
{
"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 版权声明:本文为博主原创文章,转载请附上博文链接!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。