1. 今日、ハックニュースで多くの人がメッセージパックについて議論しているのを見ました。まず MessagePack とは何かを理解します。MessagePack はバイナリベースの効率的なオブジェクトシリアル化ライブラリであり、JSON などの多くの言語間で構造化オブジェクトを交換できます。ただし、JSON とは異なり、非常に高速で小さいです。
2. 著者は、MessagePack には 2 つの主な用途があると説明しています。1 つは、スペース効率の高い Memcache エントリ (Pinterest) のストレージ、もう 1 つは RPC 送信用です。 RPC システムを設計するとき、最初のタスクの 1 つは通信プロトコルを指定して実装することです。このプロセスは、エンディアンのような多くの低レベルの問題を考慮する必要があるため、非常に複雑になります。 MessagePack を使用すると、通信プロトコルの設計と実装を完全にスキップし、開発を加速できます。3. 議論の余地がある点は、MessagePack のベンチマークは、protocolBuffer や Json よりも何倍も高速であると述べていることです。しかし、それを信じず、JavaScript (json と messagePack) でテストを行う人もいます。 MessagePack は json よりも約 10% 少ないデータしか圧縮せず、圧縮と解凍の時間は json パーサーよりもはるかに時間がかかることがわかります。
4. 「MsgPack と JSON: 1 行のコードでクライアントとサーバーの交換トラフィックを 50% 削減」 この記事では、messagePack を使用してサーバーを最適化し、サーバー上のデータ量を削減し、帯域幅をより適切に使用します。 。著者は、クライアントではむしろ 0.5 ミリ秒から 1 ミリ秒を無駄にしたいと強調しましたが、サーバーは Ruby の MessagePack パーサーを使用しており、これは JSON より 5 倍高速である可能性があります。
JSON
との違いは、MsgPack がバイナリベース であることです。これにより、交換されるデータ a) を小さくし、使用するバイト数を減らすことができます 。その利点は誰もが知っていると思いますが、次のような利点があります。さらに大きな利点: b) パーサーで 40 バイトを解析すると、20 バイトを解析する場合の約 2 倍の時間がかかり、解析 とエンコード が高速になります。 myJSONString = JSON.stringify(myObject); var myByteArray = msgpack.pack(myObject);
MessagePack の作成者は、ブログの作成者が説明したように、MessagePack がクライアント側のシリアル化には最適な選択ではない可能性もあると考えています。2 の作成者の言葉を引用するのは少し悲劇的です。
公式のインストール方法は誤解を招きます。msgpack ディレクトリの下に php ディレクトリはありません...csharp、erlang、go、java、ruby およびその他のディレクトリのみが表示されます。 。
コードをコピーします
コードは次のとおりです:
git clone https://github.com/msgpack/msgpack.git
cd msgpack/php
phpize
./configure && make && make install
この拡張機能は PHP 公式 Web サイトでまだ見つかりました: http://pecl.php.net/package/msgpack
最終更新時間: 2012 年 9 月 14 日、昨日のバージョン。
1、MessagePack公式サイト
2、MsgPack と JSON: 1 行のコードでクライアントとサーバーの交換トラフィックを 50% 削減します
HNコメントアドレス:http://news.ycombinator.com/item?id=4090831
3.MessagePackについての私の考え
HNコメントアドレス:http://news.ycombinator.com/item?id=4092969
4 JS での MessagePack と JSON のパフォーマンスの比較
HNコメントアドレス:http://news.ycombinator.com/item?id=4091051