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

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

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

keyword
askey:Boolean = false 条件付きでObjectの変換処理を高速化します
ascii:Boolean = false 条件付きでStringの変換処理を高速化します
buffer:Uint8Array = null 内部で使用するバッファを指定します
pack:Function = null USER_DEFINED_TYPE で使用する関数を指定します
  • askey は Object型の { key: value } の key 部分の変換処理に作用する最適化オプションです。

    • 全ての key の長さが 32byte 未満で、全ての文字が ASCII で出来ている場合に askey = true を指定できます
    • true を指定すると Object の変換処理が速くなります
    • key が 32byte 以上あったり、非ASCII文字でできている場合は true を指定してはいけません。復元できないデータが生成されてしまいます。
  • ascii は String型に作用する最適化オプションです。

    • 全ての String が 32byte 未満で、ASCII で出来ている場合に ascii = true を指定できます
    • true を指定すると String の変換処理が速くなります
    • 1つの String の長さが 32byte 以上あったり、非ASCII文字でできている場合は true を指定してはいけません。復元できないデータが生成されてしまいます。
  • buffer には MessagePack.encode 関数の内部で利用するバッファサイズを指定します。

    • デフォルトでは new Uint8Array(1024 * 4) を使用します。
    • 処理の途中にバッファサイズが不足した場合は自動的に拡張が行われます。
    • 扱うデータが大きい事が分かっている場合は、予め大きなバッファを指定してください。
  • pack は MessagePack の仕様ではエラーになってしまう型をサポートするための仕組みです。

Clone this wiki locally