9
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

UnityでのJsonのデシリアライズパフォーマンス

Last updated at Posted at 2016-05-26

前置き

Unityでjsonをパースするときにどのパース方法が早いのか知りたかったので試してみた。

利用したライブラリ

Json.NET 8.0.3 (.NET 2.0 dll)

Unity JsonUtility

実験環境

  • mac os x
  • Unity 5.3.4

結果

テストに利用したコード

下記のような簡単な構造体をパースするのを複数回繰り返すだけのテスト

class SampleEntity
{
    public int id;
    public string name;
}

3つの手法で比較

  1. UnityのJsonUtility
  2. Json.NETのparse
  3. Json.NETで手動パース

参考

結果

result.png

UnityのJsonUtilityがJsonConvertに対して倍以上早い結果に。
正直意外だった。。
パースするプログラムが悪いだけかもだけど、Json.NETで手動でバース場合のパフォーマンスでも負けてる。
UnityのJsonUtilityは相当チューニングしていそうだ。

結論

JsonUtilityをつかいましょう。

追記:
パフォーマンスはよいのですが、いろいろ機能的に不足していそうでした。
特に例外処理がきちんとできておらず、間違った型の代入が会った際にエラーを吐いてくれないのがつらそうです。。。

9
10
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?