青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

牽著老婆滿街逛

嚴以律己,寬以待人. 三思而后行.
GMail/GTalk: yanglinbo#google.com;
MSN/Email: tx7do#yahoo.com.cn;
QQ: 3 0 3 3 9 6 9 2 0 .

Protobuf 和 Thrift對比

轉載自:http://blog.mimvp.com/2015/03/comparing-protobuf-and-thrift/

Protobuf 和 Thrift 簡介

google protobuf 

Protocol buffers are Google’s language-neutral, platform-neutral, extensible mechanism for serializing structured data – think XML, but smaller, faster, and simpler. You define how you want your data to be structured once, then you can use special generated source code to easily write and read your structured data to and from a variety of data streams and using a variety of languages – Java, C++, or Python.

githubgoogle/protobuf 

google developers: protocol-buffers

 

Apache Thrift

The Apache Thrift software framework, for scalable cross-language services development, combines a software stack with a code generation engine to build services that work efficiently and seamlessly between C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, OCaml and Delphi and other languages.

githubapache/thrift

 

protobuf,json,xml,binary,Thrift之間的對比

一條消息數據,protobuf序列化后的大小是json的10分之一,xml格式的20分之一,是二進制序列化的10分之一,總體看來ProtoBuf的優勢還是很明顯的。

protobuf是google提供的一個開源序列化框架,類似于XML,JSON這樣的數據表示語言。

protobuf在google中是一個比較核心的基礎庫,作為分布式運算涉及到大量的不同業務消息的傳遞,如何高效簡潔的表示、操作這些業務消息在google這樣的大規模應用中是至關重要的。而protobuf這樣的庫正好是在效率、數據大小、易用性之間取得了很好的平衡。

 

protobuf簡單總結如下幾點:

1.靈活(方便接口更新)、高效(效率經過google的優化,傳輸效率比普通的XML等高很多);

2.易于使用;開發人員通過按照一定的語法定義結構化的消息格式,然后送給命令行工具,工具將自動生成相關的類,可以支持java、c++、python等語言環境。通過將這些類包含在項目中,可以很輕松的調用相關方法來完成業務消息的序列化與反序列化工作。

3.語言支持;原生支持c++,java,python

 

個人總結的適用protobuf的場合:

1.需要和其它系統做消息交換的,對消息大小很敏感的。那么protobuf適合了,它語言無關,消息空間相對xml和json等節省很多。
2.小數據的場合。如果你是大數據,用它并不適合。
3.項目語言是c++,java,python的,因為它們可以使用google的源生類庫,序列化和反序列化的效率非常高。其它的語言需要第三方或者自己寫,序列化和反序列化的效率不保證。
4.總體而言,protobuf還是非常好用的,被很多開源系統用于數據通信的工具,在google也是核心的基礎庫。

此外,還有更牛叉的facebook的thrift,2007年由Facebook開發,之后在2008年加到Apache計劃中。是一個跨語言的輕量級RPC消息和數據交換框架,Thrift能生成的語言有: C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, Smalltalk, and OCaml,這是它的一大優點。

 

Thrift 和 Protobuf 應用場景

在查看了一系列的資料后,覺得要從性能上的區別來在Thrift和Protobuf之間做選擇意義不大,因為他們的性能太接近了。我們應該從項目支持,文檔,易用性,特性方面來進行選擇。如在《Thrift vs. Protocol Buffers》一文說提到的。

Thrift和Protobuf的最大不同,在于Thrift提供了完整的RPC支持,包含了Server/Client,而Protobuf只包括了stub的生成器和格式定義。

下面列出來的是一些數據交換格式的Performance測試數據,另外有兩份針對Thrift和Protobuf的測試數據:
thrift-protobuf-compare :包含了多種數據交換格式的benchmarking;
Thrift and Protocol Buffers performance in Java
Thrift and Protocol Buffers performance in Java Round 2 :作者在對Protobuf進行了一些參數調優后重做的測試,測試結果Protobuf從帶寬節省和序列化/解序列化速度上都占了優勢。

 

數據類型

protobufthriftprotobufthriftprotobufthriftprotobufthrift
doubledoublefloat  byte i16
int32i32int64i64uint32 uint64 
sint32 sint64 fixed32 fixed64 
sfixed32 sfixed64 boolboolstringstring
bytesbinarymessagestructenumenumserviceservice

 

綜合對比

 protobufthrift
功能特性主要是一種序列化機制提供了全套RPC解決方案,包括序列化機制、傳輸層、并發處理框架等
支持語言C++/Java/PythonC++, 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
protobuf477

 

序列化(1500W次)時間(ms):

thrift二進制306034
thrift壓縮304256
protobuf177652

 

反序列化(1500W次)時間(ms):

thrift二進制287972
thrift壓縮315991
protobuf157192

 

thrift的時間測試可能不是很準,由于thrift產生代碼的復雜性,編寫的測試代碼為了適應其接口,在調用堆棧上可能有一些額外開銷。

 

參考推薦

Apache Avro 與 Thrift 比較(阿里數據平臺)

Apache Thrift – 可伸縮的跨語言服務開發框架(IBM)

Google 的開源技術protobuf 簡介與例子

幾種序列化協議(protobuf,xstream,jackjson,jdk,hessian)相關數據對比

posted on 2016-11-17 14:23 楊粼波 閱讀(4441) 評論(0)  編輯 收藏 引用

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲国产网站| 久久亚洲综合网| 久久综合狠狠综合久久综合88| 99在线热播精品免费| 亚洲片区在线| 亚洲乱码国产乱码精品精天堂 | 99国产精品99久久久久久| 亚洲欧洲日产国码二区| 亚洲高清视频一区| 亚洲乱码国产乱码精品精天堂| 亚洲人体一区| 亚洲一区二区日本| 久久精品在线播放| 欧美激情亚洲另类| 国产精品欧美久久久久无广告| 国产日韩欧美一区| 亚洲激情成人| 亚洲免费网址| 久久精品亚洲乱码伦伦中文 | 久久综合色综合88| 欧美激情免费观看| 亚洲视频免费在线观看| 久久久久久久久久久久久9999| 男人天堂欧美日韩| 国产精品婷婷| 亚洲欧洲视频| 久久精品1区| 亚洲日本理论电影| 久久www成人_看片免费不卡| 欧美成人免费va影院高清| 国产精品久久久久av免费| 影音先锋中文字幕一区二区| 亚洲一区日韩在线| 亚洲国产aⅴ天堂久久| 亚洲女人小视频在线观看| 美女被久久久| 国产亚洲精品成人av久久ww| av不卡在线看| 欧美不卡视频一区发布| 亚洲在线网站| 欧美日韩一区精品| 久久久久久久综合色一本| 欧美人牲a欧美精品| 伊人激情综合| 欧美中文字幕在线播放| 妖精成人www高清在线观看| 久久视频在线视频| 国产欧美一区二区色老头| 中文久久乱码一区二区| 亚洲第一精品夜夜躁人人躁| 久久精品在线| 韩国成人福利片在线播放| 午夜精品福利电影| 亚洲作爱视频| 欧美日韩一区综合| 日韩视频免费观看高清在线视频| 美乳少妇欧美精品| 久久精品一区蜜桃臀影院| 国产三级欧美三级| 欧美中文字幕在线| 欧美在线一二三区| 国产一区久久| 久久亚洲不卡| 老色批av在线精品| 亚洲激情在线激情| 欧美激情亚洲一区| 欧美大秀在线观看 | 亚洲一区二区成人| 亚洲精品1区| 欧美激情综合五月色丁香| 亚洲精品久久久一区二区三区| 欧美1区2区| 欧美精品乱码久久久久久按摩| 日韩视频免费看| 一区二区三区四区国产| 国产精品入口66mio| 久久se精品一区二区| 久久高清福利视频| 136国产福利精品导航| 欧美成人综合网站| 欧美精品一区在线| 亚洲欧美一区二区三区在线| 亚洲一区日韩在线| 黄色成人在线| 91久久久久久| 国产精品一区二区久久国产| 久久精品91| 女仆av观看一区| 一区二区三区四区五区在线| 亚洲午夜激情在线| 激情综合网激情| 亚洲精品美女在线观看播放| 国产精品免费久久久久久| 久久xxxx| 欧美人成在线视频| 久久九九国产| 欧美久久久久久蜜桃| 亚洲欧美在线另类| 久久久精品欧美丰满| 亚洲最新在线视频| 久久精品国产一区二区三| 亚洲免费电影在线观看| 亚洲片国产一区一级在线观看| 国产一区99| 亚洲电影在线播放| 国产精品亚洲综合一区在线观看| 免费日韩av电影| 国内精品福利| 久久天堂成人| 欧美日本视频在线| 久久久综合网站| 欧美日韩久久久久久| 久久九九免费| 国产精品国产三级欧美二区| 久久人人爽人人| 国产精品白丝av嫩草影院 | 亚洲欧洲中文日韩久久av乱码| 国产伦精品一区| 亚洲精选一区二区| 亚洲国产日韩一区二区| 性感少妇一区| 午夜视频久久久| 欧美日韩精品一区二区天天拍小说| 久久精品国产96久久久香蕉| 欧美日在线观看| 亚洲精品人人| 亚洲日韩欧美视频一区| 久久久夜夜夜| 久久久在线视频| 久久频这里精品99香蕉| 午夜一区不卡| 久热精品视频| 久久全国免费视频| 欧美一区激情| 国产精品久久久久久久午夜片 | 亚洲欧美日韩精品久久亚洲区| 欧美va天堂在线| 久久久久久电影| 国产一级揄自揄精品视频| 性欧美激情精品| 久久先锋影音| 在线欧美日韩国产| 久久婷婷久久| 亚洲福利国产| 日韩视频中文字幕| 欧美精品网站| 日韩亚洲国产精品| 亚洲小说春色综合另类电影| 国产精品xxx在线观看www| 亚洲一区尤物| 久久免费国产精品| 亚洲国产精品99久久久久久久久| 久久综合图片| 亚洲精品美女免费| 亚洲欧美另类国产| 国产在线视频欧美一区二区三区| 欧美一区永久视频免费观看| 老司机aⅴ在线精品导航| 亚洲精品1区| 欧美三级乱码| 香蕉久久国产| 欧美xx视频| 亚洲影院污污.| 国内自拍亚洲| 欧美精品一区在线| 小黄鸭精品密入口导航| 国产一区二区精品久久99| 亚洲高清视频在线观看| 99在线热播精品免费99热| 国产精品久久看| 久久久久高清| 日韩视频在线一区二区三区| 性色av一区二区三区| 亚洲国产成人精品女人久久久| 欧美日韩中文字幕在线视频| 欧美一区2区三区4区公司二百| 亚洲高清不卡在线| 欧美一级视频免费在线观看| 在线免费观看一区二区三区| 欧美无乱码久久久免费午夜一区| 欧美亚洲尤物久久| 亚洲精品国产精品乱码不99 | 亚洲欧美日韩在线一区| 欧美华人在线视频| 欧美一区二区三区在线观看视频| 亚洲承认在线| 国产精品一香蕉国产线看观看 | 国产精品入口夜色视频大尺度| 久久精品一区中文字幕| 一区二区免费看| 美女图片一区二区| 欧美一区二区三区喷汁尤物| 亚洲乱码精品一二三四区日韩在线 | 亚洲清纯自拍| 国产在线播放一区二区三区| 欧美三级视频| 欧美精品在线一区二区三区| 噜噜噜久久亚洲精品国产品小说| 亚洲欧美怡红院| 9国产精品视频|