Messagepack - Better Than Json?

WWW的蓬勃發展,也隨之出現五花八門、各式各樣的應用。雖然各家的技術可能都不盡相同,不過基本上只要能follow一些早已成為「潛規則」的公認協定的話,基本上是不會有太大問題的,大家都可以自己搞自己的一樣可以互相溝通。就如XML幾乎已經是公認的訊息交換標準了。

不過XML的清楚&詳細的定義及結構也同樣是個雙面刃。當然我覺得這個跟需求和使用的環境有點關連。不過如果以目前常見的Web 2.0(現在也不知道跳到幾點幾了 XD,還是維持原樣吧)來說,你可能根本不需要這麼詳細去定義API Service,而且越複雜結構當然就等於較不好的效能。 正因為如此,應該不難注意到,有不少新興的網路服務已經不再以XML當做預設的資料交換格式,取而代之的是JSON

有關XML與JSON孰優孰劣,這個直接用兩者當成關鍵字去搜尋你應該可以輕鬆找到許多文章,所以我也不多提這部份了(其實是因為我也說不出什麼中肯的評論...(倒))。不過像twitterFoursquare等都已經不再支援XML而改為JSON,至少在規格相對簡單的網路服務而言,JSON的輕量化設計似乎更方便一些。

不過JSON也不是我要說的東西(扯這麼多還沒進主題...毆飛)

在例行性的亂逛的時候不小心看到這篇文章,因為標題>太聳動所以就點進去看了 XD

Extremely efficient object serialization library for cross-language communication. It's like JSON, but very fast and small.

老實說,在還沒搞清楚到底MessagePack是啥之前就硬要拉JSON出來實在有點詐 :p 其實這東西應該跟ThriftProtocol Buffers比較接近,雖然以上這些的最終目的應該都是一樣的-訊息交換!

pack 看到這張比較圖就讓我想抓來玩玩看了 :p 不過我覺得拿binary-data跟JSON比實在不太公平 XD

看得出來MessagePack主打的就是-跨語言、更小、更快

用PHP版跑出的測試結果: php 用C++去跑差距應該會更明顯一點,因為PHP會做某種程度的標準化...(速度變慢...誤)

目前我並不覺得它可以取代JSON(應該作者也沒這麼想) 不過如果用在internal message exchange,相信應該可以看到不錯的成效 :p

Ferrari Lee

Read more posts by this author.

Subscribe to Ferrari != Ferrari

Get the latest posts delivered right to your inbox.

or subscribe via RSS with Feedly!