二進制數據格式MessagePack:比JSON更快更輕巧

MessagePack是一種新的基於二進制的對象序列化類庫。它能夠像JSON那樣,在許多種語言之間交換結構對象(好比移動app項目);可是它比JSON更快速也更輕巧。 php

MessagePack簡稱msgpack,官方網站是 http://msgpack.org/ ,代碼能夠在github上查看 https://github.com/msgpack。
官方介紹是「Extremely efficient object serialization library for cross-language communication.It’s like JSON, but very fast and small.」,是一種跨語言的基於二進制的數據格式。從官方的介紹來看,它可以比google protocol buffers快4倍,比json快10倍多。

msgpack支持包括PHP在內的如下語言,很是豐富: git

Ruby
Python
Perl
C/C++
Java
Scala
PHP
Lua
JavaScript
Node.js
Haskell
C#
Objective-C
Erlang
D
OCaml
Go
LabVIEW
Smalltalk

PHP安裝mskpack能夠經過PECL擴展方式安裝。 github

wget http://pecl.php.net/get/msgpack-0.5.5.tgz
tar zxf msgpack-0.5.5.tgz 
cd msgpack-0.5.5
/usr/local/hx/php/bin/phpize 
./configure --with-php-config=/usr/local/hx/php/bin/php-config 
make && make install
而後再到php.ini添加

extension=msgpack.so shell

使用PHP操做:
$data = array(0=>1,1=>2,2=>3);
$msg = msgpack_pack($data);
$data = msgpack_unpack($msg);
在php下,msgpack對數組的支持很是棒,幾乎和json差很少。 與JSON的比較 優點: 1.序列化和反序列化所須要的時間少。經過30000條的記錄來測試,msgpack序列化的時間比使用jason來序列化JSON的時間要少三分之一;而反序列化的時間則要少一半。 2.生成的文件體積小。一樣也是基於30000條記錄來測試,msgpack序列化後生成的二進制文件比用jason序列化出來的時間要少一半。
相關文章
相關標籤/搜索