Skip to content
uupaa edited this page Jul 1, 2015 · 8 revisions

このエントリでは、MessagePack.endoce に指定可能なオプションについて説明します。

MessagePack.encode には以下のオプションを指定できます。

Keyword:Type = default
askey:Boolean = false 条件付きでObjectの変換処理を高速化します
ascii:Boolean = false 条件付きでStringの変換処理を高速化します
buffer:Uint8Array = null 内部で使用するバッファサイズを指定します
pack:Function = null USER_DEFINED_TYPE で使用する関数を指定します

エンコードを高速化するオプション

  • askey は FIX_MAP, MAP16, MAP32 型に作用する最適化オプションです

    • MAP の key を FIX_STR としてエンコードします
    • MAP の key が全て 31byte 以下で、 ASCII の場合に true にできます
    • このオプションは常に指定できるわけではありません。誤って true を指定すると復元できないデータが生成されます
  • ascii は FIX_STR, STR8, STR16, STR32 型に作用する最適化オプションです

    • STR8, STR16, STR32 を FIX_STR としてエンコードします
    • STR が 31byte 以下で、ASCII の場合に true にできます
    • このオプションは常に指定できるわけではありません。誤って true を指定すると復元できないデータが生成されます
  • buffer は内部バッファに作用する最適化するオプションです

    • 内部バッファが不足すると自動拡張が行われますが、このオプションを使うことで予め十分な大きさを確保できます
    • デフォルトは 1024 * 4 です。 new Uint8Array(1024 * 4)
  • pack は、ユーザが定義した型をサポートするための仕組みです。

Clone this wiki locally