多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

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

FlatBuffers vs Protocol Buffers

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

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




生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 亚洲97在线 | 久久久久久久一精品 | 亚洲图片 自拍 | 欧美特黄一级aa毛片 | 免费精品国产 | 成人中文字幕在线高清 | 国产性生交xxxxx免费 | 午夜精品久久久久 | h网站在线观看 | 欧美人与黑人交 | www.视频| 色老头成人免费视频天天综合 | 国产福利网站 | 欧美xxxhd| a级片日韩| 日韩午夜网站 | 国产亚洲精品久久久久久无 | 国产高清精品久久久久久久 | 精品一区二区三区免费观看 | 免费在线观看黄色网址 | 97夜夜操| 日本一区二区不卡久久入口 | 最近的中文字幕在线国语 | 国内精品久久久久影院不卡 | 尤物精品视频 | 亚洲视频a| 亚洲欧美日韩国产精品久久 | 国产精品极品美女自在线看免费一区二区 | 久久精品免观看国产成人 | 性欧美一级 | 波多野结衣久久高清免费 | 中文字幕一区二区三区四区五区 | 最近中文免费字幕1 | 精品欧美一区二区三区在线 | 在线观看中文字幕第一页 | 免费网站www网站免费 | 美国毛片亚洲社区在线观看 | 欧美日韩高清不卡一区二区三区 | 亚洲天堂视频网站 | 国产人做人爱免费视频 | a级一级黄色片 |