JSON與protocol buffer效率比較

2021-08-28 20:59:06 字數 1938 閱讀 7416

對於較多資訊的儲存和較大檔案,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格式的可讀性明顯要好。

JSON物件與JSON串

最顯著的特徵 物件的值可以用 物件.屬性的方式進行訪問 例子如下 var person json物件 console.log person console.log person.name console.log typeof person 注意 json串不能像json物件那樣通過物件.屬性的方式訪...

JSON字串與JSON物件

在資料傳輸流程中,json是以文字,即字串的形式傳遞的,而js操作的是json物件,所以,json物件和json字串之間的相互轉換是關鍵。例如 json字串 var str1 json物件 var str2 要運用上面的str1,必須運用下面的要領先轉化為json物件 這一點在ajax返回的時候,經...

判斷陣列與json

判斷資料型別,一般我們都用 typeof 來判斷,但是,當我們判斷陣列時,返回object 判斷json時,依然返回object。如何判斷?先上 我們可以寫兩個方法來判斷 var isarray function obj var isjson function obj console.log isa...