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

牽著老婆滿街逛

嚴以律己,寬以待人. 三思而后行.
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>
            国产精品v一区二区三区| 国语自产精品视频在线看| 亚洲欧美日韩一区二区三区在线| 欧美在线视频免费| 一本色道久久加勒比精品| 欧美1级日本1级| 久久精品国产99精品国产亚洲性色 | 欧美高清视频一区二区| 亚洲综合视频在线| 亚洲一区二区三区高清 | 亚洲欧美日本另类| 亚洲午夜精品17c| 亚洲男女自偷自拍| 久久精品国产69国产精品亚洲 | 亚洲电影av在线| 亚洲国产精品电影| 夜夜嗨av一区二区三区中文字幕| 亚洲精品日韩久久| 99re热这里只有精品免费视频| 欧美激情小视频| 中文在线不卡| 亚洲精品一区在线观看| 欧美一区二区视频网站| 亚洲精品在线视频观看| 中日韩美女免费视频网站在线观看| 激情成人亚洲| 欧美电影在线观看完整版| 欧美视频国产精品| 国语精品一区| 99精品欧美一区二区蜜桃免费| 亚洲日本成人女熟在线观看| 日韩亚洲视频在线| 欧美亚洲免费| 亚洲乱码国产乱码精品精天堂| 午夜激情久久久| 欧美日韩国内自拍| 狠狠色综合网站久久久久久久| 亚洲区国产区| 99视频一区| 免费成年人欧美视频| 亚洲人成绝费网站色www| 亚洲一区二区影院| 欧美精品亚洲一区二区在线播放| 国产一区二区三区成人欧美日韩在线观看 | 亚洲综合色激情五月| 亚洲在线1234| 国产精品a久久久久久| 亚洲老司机av| 亚洲精品国产无天堂网2021| 美女日韩欧美| 91久久国产综合久久91精品网站| 午夜伦理片一区| 亚洲一区二区三区精品在线观看| 欧美jjzz| 在线一区日本视频| 亚洲国产日韩美| 欧美三级第一页| 亚洲欧美资源在线| 亚洲免费网站| 韩国av一区二区三区| 欧美成人精品一区| 欧美久久久久久久久| 亚洲欧美另类在线| 亚洲一区二区在线免费观看| 国产精品乱码人人做人人爱| 午夜日韩在线| 免费欧美网站| 性久久久久久久| 噜噜噜噜噜久久久久久91| 亚洲国产日韩美| 亚洲视频在线看| 国产日本欧美一区二区三区| 欧美成年人网站| 国产精品日韩久久久| 蜜桃伊人久久| 国产区二精品视| 亚洲欧美日本伦理| 亚洲网友自拍| 欧美大片在线观看一区二区| 欧美专区日韩视频| 国产欧美日韩一区二区三区在线 | 欧美成人高清| 亚洲专区一二三| 欧美大片在线看免费观看| 欧美成人午夜视频| 国产一区二区三区精品欧美日韩一区二区三区 | 亚洲自拍偷拍麻豆| 亚洲欧美日韩天堂一区二区| 欧美日韩成人一区二区| 最近中文字幕mv在线一区二区三区四区 | 久久精品国产2020观看福利| 国产精品不卡在线| 亚洲尤物影院| 久久久久久综合网天天| 一区二区在线不卡| 老司机精品导航| 91久久久久久| 亚洲深夜福利视频| 欧美日韩亚洲91| 午夜久久久久久久久久一区二区| 欧美一级一区| 一区二区在线不卡| 久久影院午夜片一区| 欧美国产激情| 亚洲一区二区三区在线观看视频 | 怡红院精品视频| 欧美黑人在线播放| 亚洲欧美卡通另类91av | 久久久综合网站| 久久成人精品电影| 亚洲国产精品免费| 亚洲黄色大片| 久久亚洲图片| 欧美一区二区在线免费观看| 午夜精品偷拍| 亚洲精品四区| 国产婷婷成人久久av免费高清 | 中日韩美女免费视频网址在线观看 | 亚洲成人在线免费| 久久国产精品99国产精| 亚洲欧洲日产国产综合网| 欧美在线综合视频| 亚洲淫片在线视频| 一区二区三区高清| 99re6这里只有精品视频在线观看| 国产日韩三区| 欧美午夜精品电影| 欧美深夜影院| 美女91精品| 欧美高清一区| 欧美成人精品三级在线观看| 久久综合色综合88| 狂野欧美激情性xxxx| 麻豆精品在线播放| 欧美a级一区| 欧美片网站免费| 欧美日韩综合网| 国产精品视频免费观看| 国产日韩欧美一区二区| 国产一区二区三区直播精品电影| 欧美性大战久久久久久久蜜臀 | 国产欧美一区二区三区另类精品 | 亚洲欧洲在线看| 亚洲福利视频一区二区| 亚洲精品欧美| 亚洲国产精品女人久久久| 亚洲国产精品福利| 99精品久久久| 久久精精品视频| 欧美精品乱人伦久久久久久| 欧美视频不卡| 亚洲黄页视频免费观看| 亚洲一区在线观看视频| 欧美福利网址| 亚洲手机视频| 欧美成人免费大片| 国产日韩精品电影| 亚洲欧美日韩国产一区二区| 亚洲女同性videos| 久久婷婷综合激情| 亚洲精品黄网在线观看| 午夜精品久久久| 久久久视频精品| 欧美日韩精品是欧美日韩精品| 欧美激情第一页xxx| 国产一区二区视频在线观看| 一本不卡影院| 国产精品香蕉在线观看| 欧美日韩亚洲综合一区| 欧美寡妇偷汉性猛交| 美女视频黄 久久| 亚洲午夜久久久久久久久电影院 | 国产亚洲精品一区二555| 欧美不卡在线| 国产亚洲精品7777| 亚洲欧美日韩天堂| 亚洲第一主播视频| 欧美一级免费视频| 免费观看国产成人| 99在线热播精品免费99热| 久久久精品动漫| 午夜精品视频在线观看| 国产女主播视频一区二区| 亚洲欧美国产高清va在线播| 亚洲欧洲精品一区二区| 欧美激情精品久久久六区热门 | 国产精品jizz在线观看美国| 国产亚洲欧美一级| 欧美国产日本| 欧美体内谢she精2性欧美| 亚洲一区二区伦理| 久久国产色av| 亚洲美女黄网| 亚洲欧美日韩一区二区三区在线| 国产一区二区精品丝袜| 最新成人在线| 黄色av日韩| 亚洲国产另类久久久精品极度 | 欧美久久电影| 99视频在线精品国自产拍免费观看 |