ByteClapとは?
Unity™で使用するために作られたC#用ライブラリ
静的シリアライザーを構築するための機能を提供します
「アプリケーションの高速化に限界を感じる」
「通信データ量を減らしたい」
「標準のシリアライザの機能では物足りない」
そんな悩みを解決するためにByteClapは生まれました。
実行速度
BinaryFormatterや
JsonUtilityより
大幅に高速に動作します
チューニング次第で
さらなる高速化も可能です
データ
サイズ
最小限の情報だけを持つ
バイナリデータを出力
Json形式やXML形式はもちろん
BinaryFormatterよりも
小さいサイズで出力できます
多彩な
機能
データのバージョン対応や
ポリモーフィズム対応
標準で変換できるデータ型も
たくさん用意しています
1. きわめて小さなオブジェクト(int型のフィールドを1つだけ持つ)の変換1,000,000回の実行に要した時間の比較(単位:秒)
2. 小さなオブジェクト(複数のプリミティブ型のフィールドを持つ)の変換1,000,000回の実行に要した時間の比較(単位:秒)
3. 大きなオブジェクト(文字列・配列などのフィールドを持つ)の変換1,000,000回の実行に要した時間の比較(単位:秒)
比較できないほど
圧倒的なスピード
以下のグラフをご覧ください
いくつかの標準的なシリアライザーとByteClapの実行時間の比較結果です
真摯にスピードを追求した結果、ここまで速くすることが出来ました
トリックはありません
ただ単純に、速いのです
無圧縮なのに
このサイズ
ByteClapのシリアライズは余計なデータを出力しません。
だから無圧縮なのに、ここまでサイズを小さくできました。
データサイズが小さければ、ストレージの節約はもちろん、
ストレージへのデータの書き込み時間の短縮や、
送受信データ量の節約、データ送受信時間の短縮、
さらに、データ送受信にかかる電力消費の抑制など、
さまざまな効果が期待できます。
3. 大きなオブジェクト(文字列・配列などのフィールドを持つ)のシリアライズ結果のサイズ比較(単位:Byte)
2. 小さなオブジェクト(複数のプリミティブ型のフィールドを持つ)のシリアライズ結果のサイズ比較(単位:Byte)
1. きわめて小さなオブジェクト(int型のフィールドを1つだけ持つ)のシリアライズ結果のサイズ比較(単位:Byte)
3’. 大きなオブジェクト(文字列・配列などのフィールドを持つ)の変換1,000,000回の実行に要した時間の比較(単位:秒)
さらに上の速度へ
ByteClapは適切にチューニングすることで、
さらに高速化することが出来ます。
以下のグラフは、上記のNo.3(大きなオブジェクトの変換結果)に、
パフォーマンスチューニングを施した結果を追加したものです。
信じられませんか?
でも、現実なんです。
※ パフォーマンスチューニング内容:中間プロセッサ(フィールドは全て中間バイトモード)を使用、フィールドを全て固定長化、シリアライズ時のbyte配列を再利用、デシリアライズ時のインスタンスを再利用
注: これらの測定の結果は、私たちの環境で実施した結果をそのまま掲載していますが、実行速度は実行時の環境に依存します。必ずこの結果が得られることを保証するものではないことをご理解ください
不可能を可能に
他に類を見ない実現力
ただ速くて、データサイズが小さいだけではありません。
洗練された多彩な機能が、
あなたのプログラム開発を強力にサポートします。