當前位置:
首頁 > 知識 > json與protobuf的速度之爭

json與protobuf的速度之爭

json是這些年慢慢興起的輕量級數據交換格式。比起老大哥XML。因其更快的解析速度和更小的體積,可謂是用過的都說好。一般情況下json足夠滿足你的大多數需求,但是在計算機領域,沒有最快,只有更快。

當你的傳輸數據大到一定程度的時候,json的速度也不能滿足你需求的時候,你就需要更快的protobuf。

protocolbuffer(以下簡稱PB)是google 的一種數據交換的格式,它獨立於語言,獨立於平台。(百度百科)。

因為其使用二進位存儲,所以會比json更快。但是缺點也是顯而易見,二進位存儲易讀性很差。

我曾遇到要解析40M json的需求。在PC端,使用litjson需要解析10秒鐘。但是將相同的內容通過protobuf再導出成bytes。只要17M。縮小了2.5倍左右。但是讀取速度只要0.8秒,還包括了數據解析後的處理。

0.1秒和0.008秒可能給人差別不大,但是10秒和0.8秒的差別真的是天壤地別。

如果需要傳輸的數據量比較大時,protobuf是你的不二選擇。

如何使用呢?

我們在unity中只需要使用 protobuf-net 這個dll就行了,下面是其在GitHub上的鏈接。如何使用他鏈接內已經非常的清楚了,我在這不重複說了。

其中的坑:

1.

將類導出成protobuf或者是從protobuf導入到類時,基類的屬性是無法導入的。所以說使用protobuf的模型類最好還是不要相互繼承。這點需要注意。

2.unity在pc端讀取2進位文件的文件是沒有要求的。.bat.bin都可以用C# 的IO類來讀取。但是在安卓端因為沒法使用IO。如果通過resourecs.load來讀取的話,2進位文件的後綴需要是.bytes。

json與protobuf的速度之爭

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 程序員小新人學習 的精彩文章:

SEO 搜索引擎優化
W3C XSL 活動

TAG:程序員小新人學習 |