2017-03-27 44 views

回答

4

協議緩衝區針對線路上的空間消耗進行了優化,因此對於存檔和存儲而言,它們非常高效。但是,複雜的編碼代價很高,因此它們的計算量很大,並且C++ API大量使用動態分配。另一方面,扁平緩衝器針對高效解析和內存中表示進行了優化(例如,在某些情況下提供數據的零拷貝視圖)。

這取決於你的用例,哪些方面對你更重要。

0

flatbuffer頁面引用:

爲什麼不使用協議緩衝區,或..?

協議緩衝器確實比較類似FlatBuffers,與 主要差別在於FlatBuffers不需要解析/ 拆包步驟到次級表示,然後才能訪問 數據,常常與每個對象的存儲器分配。該代碼也是一個 數量級更大。協議緩衝區既沒有可選的 文本導入/導出,也沒有聯盟等模式語言功能。