msgpack.js bench mark

MessagePackJavaScript 実装を GitHub に上げました。
テストは一通り終わっています(test/codec.htm)。ライセンスはまだ決めていませんがご利用はご自由にどうぞ。

HOW TO USE

var mix = { any: "type" };

// MessagePackフォーマットの ByteArray にエンコード
var ary = msgpack.pack(mix);   // null, Boolean, Number, String, Array, Hash を受け取り ByteArray に変換

// MessagePackフォーマットの ByteArray をデコード
var jsobj = msgpack.unpack(ary); // ByteArray を受け取り元の形に復元

// JavaScript オブジェクトを MessagePack フォーマットのバイナリデータに変換しアップロード
msgpack.upload("http://.../msg.pack", { data: mix }, function(data, option, resp) {
    if (resp.ok) {
        alert("uploaded");
    }
});

// サーバ上のMessagePackフォーマットのバイナリファイルをダウンロードし JavaScript オブジェクトにデコード
msgpack.download("http://.../msg.pack", {}, function(data, option, resp) {
    if (resp.ok) {
        alert("download");
        uu.puff(data);
    }
});

ベンチマーク

bench.htm - Load 10000 score

Browser JSON.stringify + JSON.parse msgpack.pack + msgpack.unpack
IE 8 140ms 1623ms
IE 9 beta 72ms 107ms
Firefox 3.6.10 70ms 354ms
Firefox 4.0 beta6 55ms 317ms
Opera 10.62 61ms 134ms
Google Chrome 6.0.472.62 beta 152ms 102ms
iPhone 3GS + iOS4.1 353ms 2540ms

IE8ではネイティブな JSON が圧倒的に高速でしたが、IE9βでは JIT のおかげでいい勝負になっています。