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

牽著老婆滿街逛

嚴以律己,寬以待人. 三思而后行.
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>
            中文国产亚洲喷潮| 欧美日韩中文另类| 亚洲高清视频一区二区| 久久精品99国产精品日本| 欧美一区二区三区婷婷月色 | 久久综合九色综合久99| 久久久久久9999| 欧美成人a视频| 久久精品导航| 亚洲精品之草原avav久久| 亚洲精品一区二区三区樱花| 一本色道88久久加勒比精品| 99re66热这里只有精品4| 亚洲一区二区三区免费视频| 香蕉久久精品日日躁夜夜躁| 久久免费国产精品| 欧美—级a级欧美特级ar全黄| 欧美日韩一区精品| 国产视频在线观看一区| 亚洲国产精品黑人久久久| 99国产精品视频免费观看| 西西人体一区二区| 你懂的国产精品| 99热在这里有精品免费| 久久久久久久久久久久久久一区 | 亚洲欧美日韩区| 久久免费视频这里只有精品| 亚洲精品免费在线播放| 午夜日韩电影| 国产日韩欧美高清| 欧美一区二区| 欧美精品免费看| 欧美一区二区久久久| 久久九九国产| 伊人久久亚洲影院| 另类综合日韩欧美亚洲| 中国日韩欧美久久久久久久久| 国产日韩欧美一区二区三区四区 | 亚洲欧洲视频在线| 亚洲欧美综合另类中字| 欧美精品一区二区视频| 久久夜色精品亚洲噜噜国产mv| 国产一区二区三区高清在线观看| 国产噜噜噜噜噜久久久久久久久| 亚洲欧洲一区二区天堂久久| 午夜视频久久久久久| 亚洲人成网站精品片在线观看| 欧美在线高清| 国产女优一区| 性18欧美另类| 亚洲一区二区三区精品在线| 欧美日韩少妇| 一区二区久久| 日韩天堂在线观看| 亚洲高清视频中文字幕| 欧美精品一区二区三区视频| 在线看一区二区| 久久久久国产精品一区| 一区二区三区欧美激情| 欧美国产日韩xxxxx| 国内精品久久久久久| 亚洲精品中文字幕有码专区| 欧美77777| 亚洲人人精品| 嫩草影视亚洲| 久久久欧美一区二区| 国产午夜精品一区二区三区欧美 | 国产精品一区二区三区四区| 亚洲一区二区三区午夜| 一区二区欧美视频| 国产精品男gay被猛男狂揉视频| 亚洲在线播放| 久久久久国产精品厨房| 久久av红桃一区二区小说| 国产午夜久久久久| 久久久久欧美精品| 久久精品国产亚洲5555| 亚洲大片av| 亚洲狼人精品一区二区三区| 国产精品第一区| 久久久久久久久久久久久女国产乱| 久久国产精品99国产| 亚洲高清视频在线| 亚洲乱码国产乱码精品精可以看| 国产精品日日摸夜夜添夜夜av| 久久久视频精品| 欧美日韩国产小视频| 欧美一区在线看| 欧美成年人网站| 欧美一区午夜视频在线观看| 美女亚洲精品| 午夜欧美视频| 久久九九99| 亚洲黄色一区| 国产精品美女久久久免费| 欧美色精品天天在线观看视频| 欧美视频福利| 国产欧美另类| 在线观看一区二区精品视频| 国产一区二区三区免费不卡| 一区二区三区在线免费视频| 国产精品手机在线| 免费观看日韩av| 久久精品国产一区二区三区| 一区二区三区国产精华| 日韩亚洲欧美一区| 亚洲激情欧美激情| 在线看片欧美| 亚洲国产精品国自产拍av秋霞| 久久er99精品| 久久一综合视频| 国产精品亚洲一区| 美女福利精品视频| 一本久久a久久精品亚洲| 蜜桃视频一区| 欧美色道久久88综合亚洲精品| 亚洲欧美日韩一区二区在线| 麻豆精品视频在线观看| 久久久亚洲午夜电影| 国产精品jizz在线观看美国 | 亚洲欧美中文在线视频| 欧美岛国激情| 欧美成人午夜免费视在线看片| 国产日韩一区二区三区在线播放 | 狠狠色综合色区| 亚洲欧美国产三级| 亚洲网站在线| 欧美日韩在线免费| 99国产精品99久久久久久粉嫩| 亚洲日韩视频| 欧美国产亚洲精品久久久8v| 欧美国产欧美亚洲国产日韩mv天天看完整 | 蜜臀99久久精品久久久久久软件| 国产精品日韩精品欧美精品| 一区二区电影免费观看| 亚洲一区二区三区在线看| 欧美人交a欧美精品| 最新日韩中文字幕| 亚洲精品国产拍免费91在线| 欧美a级大片| 亚洲美女视频网| 亚洲欧美另类中文字幕| 国产精品美女主播| 午夜精品影院| 久久久99久久精品女同性| 国内精品国语自产拍在线观看| 欧美伊人久久久久久久久影院| 久久久久久久久久久成人| 激情六月婷婷久久| 欧美国产免费| 午夜精品久久| 国产精品国产三级国产| 国产精品99久久99久久久二8 | 亚洲精品精选| 欧美日韩国产首页在线观看| 亚洲理论电影网| 亚洲欧美日韩国产| 国产日韩欧美一区二区| 久久天堂精品| 亚洲久久在线| 欧美一区永久视频免费观看| 在线精品国精品国产尤物884a| 欧美区国产区| 亚洲欧美一区二区三区在线| 美女黄色成人网| 在线亚洲伦理| 国产亚洲精品自拍| 免费成人高清视频| 一本色道久久| 蘑菇福利视频一区播放| 在线视频日韩精品| 国产亚洲精品一区二555| 欧美二区在线观看| 亚洲在线免费视频| 亚洲电影下载| 久久国产免费看| 亚洲片在线资源| 国产精品高潮呻吟久久| 久久久久免费| 在线综合+亚洲+欧美中文字幕| 久久精品日韩欧美| 亚洲伦理在线观看| 国产午夜精品久久久久久免费视| 狂野欧美一区| 亚洲欧美国产一区二区三区| 亚洲黄色免费| 久久九九久精品国产免费直播| 亚洲精品乱码久久久久| 国产日韩欧美综合| 欧美日韩一区二区三区在线观看免| 欧美亚洲在线| 亚洲视频在线观看三级| 亚洲国产精品第一区二区| 欧美一级黄色网| 一本久道久久综合中文字幕| 在线免费观看日韩欧美| 国产一区视频在线看| 国产精品一级二级三级| 欧美日韩在线免费视频| 欧美另类亚洲|