日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > FlatBuffers vs Protocol Buffers

FlatBuffers vs Protocol Buffers

來源:程序員人生   發布時間:2015-03-05 08:20:00 閱讀次數:4692次

FlatBuffers去年發布,最近看了1下,與同是出自Google之手的Protocol Buffers非常類似。在官網上介紹,FlatBuffers(簡稱FB)主要針對game development和對性能有要求的利用。相對Protocol Buffers(簡稱PB),FB不需要解析,只通過序列化后的2進制buffer便可完成數據訪問。

FB的主要特點有:

1)數據訪問不需要解析

將數據序列化成2進制buffer,以后的數據訪問直接讀取這個buffer,所以讀取的效力很高。

2)內存高效、速度快

- 數據訪問只在序列化后的2進制buffer,不需額外的內存分配。

- 數據訪問速度接近原生的struct,只多了1次解援用(根據起始地址和偏移量,然后取值)

3)彈性

都是可選字段,支持向前、向后兼容

4)生成的代碼量小

只需依賴1個頭文件

5)強類型

編譯時檢測毛病

6)易于使用

可以解析schema和json文本

7)跨平臺

C++/Java/Go不需額外依賴


FB的實現原理:

通過FB序列化后的數據就是1個2進制buffer,內部包括各種objects(structs,tables,vectors),通過offset組織。所以數據可以in-place訪問(起始地址+偏移量),就像數組或struct訪問。

FB中table代表1個數據結構,這個table會對應1個vtable,用于唆使各個字段在buffer中的偏移量。接下來,在訪問某個字段時,直接根據偏移量就能夠找到該字段。 由于FB直接訪問raw buffer,所以在數據破壞時,會得到臟數據。FB通過Verifier確保不可信buffer數據是正確的。


下面測試了PB和FB,做性能對照,測試場景很簡單,構造N個對象,序列化,寫入文件,然后再反序列化。測試的對象結構以下:

message Sample { required int32 id = 1; required string name = 2; required int32 ip = 3; repeated int32 addr_list = 4; }
測試結果以下:


記錄個數
FlatBuffers
Protocol Buffers
10000
0.197  /  4.4M  /  0.02
0.166  / 3.0M  /  0.08
20000
0.383  /  8.8M  /  0.03
0.248  / 6.4M  /  0.168
30000
0.534  / 13M   /  0.05
0.378  / 10M  / 0.26
100000
1.937  /  44M  /  0.144
1.314  /  38M  /  0.8
200000
3.9  /  88M  /  0.276
2.66  /  67M  /  1.542
1000000
17.59  /  439M  /  1.396
13.355  /  397M  /  8.012

X  /  Y  /  Z3個數據,分別對應,序列化總時間  /  文件大小  /  反序列時間,其中包括讀寫文件的時間。可以看到,PB在序列化的時間和大小都要優于FB,序列化要快30%左右,序列化數據大小要小20%左右。而FB由于不需要解析,反序列化異???。

雖然FB的反序列化超級快,但是數據大小還是蠻大的(可能的緣由是不需要解析,直接訪問binary buffer,所以不能對數據進行緊縮),帶來的傳輸或存儲開消,可能會抵過1部份反序列化的時間。感覺上,FB的使用處景上還是很受限,在移動端多是1個利用場景。

測試代碼為了簡單,對每一個對象都會調用write或read,統計的時間也包括這些時間。由于要對PB和FB對照,此部份開消基本1致。具體代碼見github




生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 免费国产一区 | 亚洲一区二区精品视频 | 久久久噜噜噜久久久 | 91精品国产亚洲 | 亚洲欧美日韩电影 | 国产精品久久久久久久午夜片 | 日本最新一区二区 | 成人精品久久久 | 日日噜噜夜夜爽狠狠视频 | 最近中文字幕高清字幕mv | 成年人小视频 | 黄色av网 | 中文字幕一区二区三区四区 | 精品亚洲一区二区三区 | 国产高清欧美 | 国产亚洲区 | 久久好色| 国产一二区在线观看 | 美女搡bbb又爽又猛又黄www | 国内精品久久久久久久97牛牛 | 久久久久国产一区二区三区四区 | 日韩午夜免费视频 | 青青视频一区二区 | 中文第一区| 综合精品 | 久久免费看片 | 国产精品久久9 | 男女av| 国产精品视频网址 | 欧美国产在线视频 | 欧美特级 | 亚洲三区在线 | 九九九久久国产免费 | 九九九九精品九九九九 | 亚洲成人毛片 | 精品国产综合区久久久久久 | 亚洲精品资源 | 亚洲电影中文字幕 | 精品一区二区久久久久久久网站 | 亚洲国产日韩精品 | 精品一二三区 |