protobuf和thrift對比
資料型別
protobuf | thrift | protobuf | thrift | protobuf | thrift | protobuf | thrift |
---|---|---|---|---|---|---|---|
double | double | float | byte | i16 | |||
int32 | i32 | int64 | i64 | uint32 | uint64 | ||
sint32 | sint64 | fixed32 | fixed64 | ||||
sfixed32 | sfixed64 | bool | bool | string | string | ||
bytes | binary | message | struct | enum | enum | service | service |
綜合對比
protobuf | thrift | |
功能特性 | 主要是一種序列化機制 | 提供了全套RPC解決方案,包括序列化機制、傳輸層、併發處理框架等 |
支援語言 | C++/Java/Python | C++, Java, Python, Ruby, Perl, PHP, C#, Erlang, Haskell |
易用性 | 語法類似,使用方式等類似 | |
生成程式碼的質量 | 可讀性都還過得去,執行效率另測 | |
升級時版本相容性 | 均支援向後相容和向前相容 | |
學習成本 | 功能單一,容易學習 | 功能豐富、學習成本高 |
文件&社群 | 官方文件較為豐富,google搜尋protocol buffer有2000W+結果,google group被牆不能訪問 | 官方文件較少,沒有API文件,google搜尋apache thrift僅40W結果,郵件列表不怎麼活躍 |
效能對比
由於thrift功能較protobuf豐富,因此單從序列化機制上進行效能比較,按照序列化後位元組數、序列化時間、反序列化時間三個指標進行,對thrift的二進位制、壓縮、protobuf三種格式進行對比。
測試方法:取了15000+條樣本資料,分別寫了三個指標的測試程式,在我自己的電腦上執行,其中時間測試迴圈1000次,總的序列化/反序列化次數1500W+。
平均位元組數:
thrift二進位制 | 535 |
thrift壓縮 | 473 |
protobuf | 477 |
序列化(1500W次)時間(ms)
thrift二進位制 | 306034 |
thrift壓縮 | 304256 |
protobuf | 177652 |
反序列化(1500W次)時間(ms):
thrift二進位制 | 287972 |
thrift壓縮 | 315991 |
protobuf | 157192 |
thrift的時間測試可能不是很準,由於thrift產生程式碼的複雜性,編寫的測試程式碼為了適應其介面,在呼叫堆疊上可能有一些額外開銷。
相關推薦
protobuf和thrift對比
資料型別 protobuf thrift protobuf thrift protobuf thrift protobuf thrift double double float byte i16 int32 i32 int64
protobuf-c 在arm linux 嵌入式平臺的使用 protobuf和Json對比測試
關於什麼是protobuf,網上搜搜一大堆,很多人用的都還是json,以為json是多種語言傳輸資料是萬能的,看完了protobuf的實現,就明白了簡單高效才是王道。 1、首先寫一個
三種通用應用層協議protobuf、thrift、avro對比,完爆xml,json,http
avr bsp 編譯 通用應用 rift python語言 二進制 code 序列 原文: https://www.douban.com/note/523340109/ Google protobuf: 優點 二進制消息,性能好/效率高(空間和時間效率都
jquery和vue對比
操作dom upload ssh component .html div 前言 高效 sets jquery和vue對比 前言:很多人說jquey和vue沒有什麽可比的,應該和Angular,React來比吧,我到覺得他們倒沒有多大的可比性,都是基於mvvm思想設計的框架,
FairyGUI和NGUI對比
相對 參數 編輯器 溝通 界面 丟失 需要 只需要 可能 一直在做Unity方面的遊戲開發,經同事介紹了解到有這麽一個GUI能提供跨平臺的能力,有獨立UI編輯器,而且功能強大,能夠組合成復雜的UI界面,可以導出到Unity,Flash,Starling等,文檔還說未來將支持
800Li 流媒體和傳統http播放MP4和FLV對比
流媒體 http html5 mp4 隨著Web 應用發展的普及,在瀏覽器上播放媒體(視頻、音頻)的需求變得越來越普遍;很多的企業在嘗試在網站加入多媒體內容,最常見的倆種方式: 1. 普通的 http 文件點播 ,直接通過網站前臺 file upload 的方
SSH和SSM對比總結
模式 csdn jsp 分離 依賴註入 resolve 靈活 sql語句優化 相關 當下流行的兩種企業開發MVC開源框架,是我們Java程序猿必備知識能力。MVC,即模型(model)-視圖(view)-控制器(controller)的縮寫,一種軟件設計典範,用一種業務邏輯
Redis和Memcache對比及選擇(轉載)
rain not 目前 ctu res sim per fast 超過 http://www.cnblogs.com/EE-NovRain/p/3268476.html 我這段時間在用Redis,感覺挺方便的,但比較疑惑在選擇內存數據庫的時候到底什麽時候選擇redis,
MySQL存儲引擎Innodb和MyISAM對比總結
級別 索引 日誌 鎖定 lte mysql 恢復 ins 標準 Innodb引擎 InnoDB是一個事務型的存儲引擎,設計目標是處理大數量數據時提供高性能的服務,它在運行時會在內存中建立緩沖池,用於緩沖數據和索引。 Innodb引擎優點 1.支持事務處
Redis和Memcache對比及選擇
fas 之前 there 快照 存在 cas struct 服務器 eboot 在選擇內存數據庫的時候到底什麽時候選擇redis,什麽時候選擇memcache,然後就查到下面對應的資料,是來自redis作者的說法(stackoverflow上面)。 You shou
Iterator 和 ListIterator 對比
dex asp pan iter log mov 添加 cnblogs rem Iterator 的方法 //是否還有下一個 boolean hasNext(); //返回下一個 E next(); //移除返回的下一個 void rem
Elasticsearch簡介和安裝對比
特殊 字段 tree apache 查看 端口 blog work 分布式搜索 各位小夥伴,又到了本期分享大數據技術的時間,本次給大夥帶來的是Elasticsearch這個技術,閑話不多聊,我們開始進入正題。 一、什麽是elasticsearch Elasticsearc
shell和python對比對目錄下不同文件
技術文檔cat git_tar.py import subprocess,tarfile,osdef finds():tar = tarfile.open("test.tar.gz","w:gz")result=subprocess.call(‘git diff 99g
FineBI學習系列之淺談FineBI和Tableau對比異同(從產品理念和功能對比)(圖文詳解)
研究 簡單 nio 比較 管理 post 企業it 獨立 圖片 不多說,直接上 幹貨! FineBI和Tableau是比較好的自助式商業智能軟件,功能都很強大,是企業數據可視化不可或缺的利器,但兩款產品還是有非常大的區別的
MySQL查詢語句中的IN 和Exists 對比分析
In exists nested loop sql優化 查詢效率 背景介紹 最近在寫SQL語句時,對選擇IN 還是Exists 猶豫不決,於是把兩種方法的SQL都寫出來對比一下執行效率,發現IN的查詢效率比Exists高了很多,於是想當然的認為IN的效率比Exists好,但本著尋根究底的原
dubbo和rabbitmq對比
inter 80端口 ica 結合 model 建立連接 socket通訊 讓其 業務 隨著項目越來越大,局勢就是項目拆分,大項目拆分成很多項目,各種技術也應允而生。從應用交互層面,按我的理解dubbo和rabbitmq就對比分析進行學習。dubbo和zookeeper結合
RAMOS和SSD對比
size 內存條 nvme ssd fuck 優化 玩家 勞斯萊斯 AD 文檔 http://bbs.pcbeta.com/forum.php?mod=redirect&goto=findpost&ptid=1786284&pid=48341400R
redis和memcached對比
redis memcache redis memcache區別 nosql redis特點 我總結的: 更加權威的對比 關於這兩種技術選擇的總結: 參考:https://db-engines.com/en/system/Memcached%3BRedishttps://cloud.orac
layui和bootstrap 對比
需求 block 版本 查詢 指點 lock layui 後臺 框架 layui和bootstrap 對比 這兩個都屬於UI渲染框架。 layui是國人開發的一套框架,2016年出來的,現在已更新到2.X版本了。比較新,輕量級,樣式簡單好看。 bootstr
SOC中的DFT和BIST對比與比較-IC學習筆記(二)
獨立 讀取 c學習 連接 特殊 客戶服務 bsp design 來源 ATE:ATE是Automatic Test Equipment的縮寫,根據客戶的測試要求、圖紙及參考方案,采用MCU、PLC、PC基於VB、VC開發平臺,利用TestStand&LabV