シリアライズのパフォーマンス

class Item {
  public String firstName;
  public String lastName;
  public int age;
  public SubItem [] subItems;
}
class SubItem {
  public String name;
  public int value;
}

みたいなので、各値はランダム。Itemを1000個、subItemは0〜9個。(JsonPullParserはgetter/setterが必須なので追加、配列も使えないのでListにしてる)
シリアライズした結果はファイルに書き出して、デシリアライズはファイルからの読み込み。
Android 4.2.2 の Nexus 7(2012) で動かした結果。(10回続けて実行した中の最速値)

ライブラリ シリアライズ シリアライズ
Gson 2.2.4 1788 365
Jackson 2.2 124 236
JSONIC 1.3 171 1006
JsonPullParser 1.4 1520 520
Serializable 925 830

出力のファイルサイズ。

ファイル サイズ
JSON(Jackson,Gson,JSONIC,JsonPullParser) 440306
Serializable 376967

やっぱりJacksonが嘘みたいな速さですな。


Nexus 5のDalvikとARTでもついでに試してみたら、ARTだと遅くなりますな...。

シリアライズ Dalvik ART
Gson 1534 1763
Jackson 80 189
JSONIC 116 293
JsonPullParser 1331 1666
Serializable 748 1179
シリアライズ Dalvik ART
Gson 364 360
Jackson 193 315
JSONIC 691 891
JsonPullParser 453 343
Serializable 689 998

テーブル作ってSQLiteに入れる方法も試した。