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

牽著老婆滿街逛

嚴以律己,寬以待人. 三思而后行.
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>
            麻豆精品在线播放| 国产精品香蕉在线观看| 最新日韩欧美| 一区二区激情| 国产免费成人| 久久综合五月天婷婷伊人| 亚洲片在线观看| 亚洲一区视频在线| 韩国成人福利片在线播放| 欧美成人国产va精品日本一级| 亚洲毛片在线观看| 久久久九九九九| 亚洲精品在线免费| 国产精品丝袜白浆摸在线| 久久综合婷婷| 中文一区字幕| 欧美成人精品不卡视频在线观看 | 狠狠做深爱婷婷久久综合一区| 免费成人你懂的| 亚洲先锋成人| 欧美国产日韩一区二区三区| 亚洲综合社区| 亚洲欧洲精品一区二区三区波多野1战4| 欧美日韩第一区| 久久精品国产综合精品| 一本到高清视频免费精品| 久久久久久亚洲综合影院红桃| 一区二区国产日产| 亚洲高清一二三区| 国产伦精品一区二区三区免费 | 欧美激情导航| 久久精品国产91精品亚洲| 99视频精品免费观看| 国内精品国产成人| 国产精品网站在线观看| 欧美福利视频在线观看| 久久福利视频导航| 亚洲一区图片| 99国产成+人+综合+亚洲欧美| 美女国内精品自产拍在线播放| 亚洲欧美韩国| 一区二区三区精品在线 | 老司机成人网| 久久都是精品| 亚洲一区在线观看免费观看电影高清| 亚洲第一精品夜夜躁人人躁 | 性欧美video另类hd性玩具| 日韩亚洲欧美综合| 亚洲国产免费看| 激情小说另类小说亚洲欧美| 国产精品一区二区黑丝| 国产精品福利片| 欧美日韩亚洲精品内裤| 欧美国产先锋| 免费在线看一区| 久久久综合精品| 久久久久久久激情视频| 欧美一区二区视频在线观看2020| 亚洲天堂男人| 亚洲永久免费精品| 亚洲永久精品大片| 亚洲综合色激情五月| 亚洲中字黄色| 午夜激情综合网| 亚洲欧美日韩天堂| 亚洲欧美在线另类| 欧美一区亚洲| 久久九九国产精品| 久久一区亚洲| 欧美福利电影网| 欧美日韩精品欧美日韩精品| 欧美日韩一二三四五区| 国产精品久久久久久久久婷婷| 国产精品久久国产精品99gif| 国产精品爱久久久久久久| 国产精品美女久久久| 国产麻豆视频精品| 精品电影一区| 亚洲欧洲日产国码二区| 99热免费精品| 欧美一乱一性一交一视频| 久久久国产精彩视频美女艺术照福利| 久久精品人人做人人爽电影蜜月| 久久久视频精品| 欧美激情精品久久久六区热门| 亚洲国产精品热久久| 一区二区三区|亚洲午夜| 亚洲尤物精选| 久久夜色精品国产欧美乱极品| 欧美国产极速在线| 国产精品日韩在线一区| 激情综合在线| 一区二区三区四区国产| 久久av一区二区三区| 男女视频一区二区| 亚洲精品美女91| 午夜一区二区三区在线观看| 久久尤物电影视频在线观看| 欧美人与性动交cc0o| 国产欧美精品日韩| 亚洲精品久久7777| 亚洲欧美不卡| 欧美激情女人20p| 亚洲午夜精品久久| 麻豆精品精华液| 国产精品捆绑调教| 亚洲国产一二三| 欧美亚洲一区二区在线| 欧美国产精品| 亚洲欧美成人网| 欧美高清视频一区二区三区在线观看| 国产精品xnxxcom| 亚洲激情av| 久久av红桃一区二区小说| 亚洲精品国产精品国自产在线 | 欧美国产日产韩国视频| 国产视频在线观看一区二区三区 | 狠狠色综合播放一区二区| 亚洲视频每日更新| 欧美成人激情视频免费观看| 亚洲已满18点击进入久久| 欧美黄在线观看| 极品尤物久久久av免费看| 亚洲欧美日韩精品| 亚洲区在线播放| 久久麻豆一区二区| 国产欧美不卡| 亚洲一区二区三区四区五区午夜 | 国产精品高潮呻吟久久| 亚洲人成在线播放| 看片网站欧美日韩| 午夜精品免费| 国产精品久久一卡二卡| 宅男噜噜噜66一区二区| 亚洲日本欧美| 免费在线日韩av| 尤物yw午夜国产精品视频| 久久狠狠婷婷| 亚洲摸下面视频| 国产精品国产亚洲精品看不卡15| 99综合在线| 亚洲人成久久| 欧美国产精品v| 亚洲精品1区2区| 欧美激情1区2区| 蜜桃av综合| 亚洲精华国产欧美| 欧美激情bt| 欧美成人精品激情在线观看| 亚洲高清成人| 欧美激情精品久久久久久| 久久久噜噜噜久久狠狠50岁| 激情小说另类小说亚洲欧美 | 亚洲福利在线观看| 亚洲第一福利社区| 免费欧美在线| 日韩一区二区精品视频| 亚洲人午夜精品| 欧美日韩亚洲一区二区三区四区| 9色porny自拍视频一区二区| 亚洲精品综合| 欧美日韩亚洲在线| 亚洲一区日韩| 亚洲欧美一区二区激情| 国自产拍偷拍福利精品免费一| 米奇777在线欧美播放| 久久综合色播五月| 亚洲精品国产精品国自产在线 | 欧美国产一区视频在线观看| 欧美成人免费在线观看| 在线亚洲国产精品网站| 亚洲无亚洲人成网站77777| 国产精品日本精品| 久久综合伊人77777麻豆| 开心色5月久久精品| 日韩一区二区福利| 亚洲欧美第一页| 伊人蜜桃色噜噜激情综合| 亚洲国产精品久久精品怡红院 | 亚洲美女av电影| 一区二区三区av| 国产午夜精品久久| 欧美成人精品| 欧美午夜视频网站| 久久免费视频在线| 欧美日本簧片| 久久精品国产综合精品| 免费观看日韩av| 亚洲一区二区在线播放| 欧美资源在线观看| 99精品福利视频| 午夜久久黄色| 亚洲毛片在线观看| 亚洲欧美一区二区原创| 亚洲精品视频在线观看免费| 亚洲一区二区三区精品动漫| 亚洲福利在线看| 亚洲免费一在线| 亚洲精品九九| 久久av一区二区三区漫画|