fastjson ベンチマーク
fastjson-1.2.11ではシリアル化性能が大幅に向上し、逆シリアル化性能も向上したため、他のシリアル化ライブラリとの性能比較テストを行いました。
テスト シナリオ
https://github から、さまざまなシリアル化ライブラリの作成者によって認められているテストを使用します。 com /eishay/jvm-serializers、公式テストではまだ最新バージョンの fastjson が使用されていないため、最新の API を使用するようにフォークして変更しました。コードはここにありますhttps://github.com /wenshao/jvm-serializers /tree/fastjson-1.2.11
テストの実行
git clone https://github.com/wenshao/jvm-serializers.git cd jvm-serializers/tpc make ./run-bench.sh json/jackson+afterburner/databind,json/fastjson/databind,json/fastjson_array/databind,protobuf,json/jackson/databind,msgpack/databind
クラス構造
eihay のシナリオには 3 つのクラスがあり、クラス構造は次のとおりです。
class MediaContent { public Media media; public Image[] images; } class Media implements java.io.Serializable { public enum Player { JAVA, FLASH } public String uri; public String title; // Can be unset. public int width; public int height; public String format; public long duration; public long size; public boolean hasBitrate; public List<String> persons; public Player player; public String copyright; // Can be unset. } class Image { public enum Size { SMALL, LARGE } public String uri; public String title; // Can be null public int width; public int height; public Size size; }
詳細なコードはこちらを参照してください:
- https://github.com/wenshao/jvm-serializers/blob/fastjson-1.2.11/tpc/src/data/media / MediaContent.java
- https://github.com/wenshao/jvm-serializers/blob/fastjson-1.2.11/tpc/src/data/media/Media.java
- https://github.com/wenshao/jvm-serializers/blob/fastjson-1.2.11/tpc/src/data/media/Image.java
テストシナリオは
media.1.cksで、対応するjsonは次のとおりです
{"images":[{"height":768,"size":"LARGE","title":"Javaone Keynote","uri":"http://javaone.com/keynote_large.jpg","width":1024},{"height":240,"size":"SMALL","title":"Javaone Keynote","uri":"http://javaone.com/keynote_small.jpg","width":320}],"media":{"bitrate":262144,"duration":18000000,"format":"video/mpg4","height":480,"persons":["Bill Gates","Steve Jobs"],"player":"JAVA","size":58982400,"title":"Javaone Keynote","uri":"http://javaone.com/keynote.mpg","width":640}}fastjson では、BeanToArray モードが有効な場合、対応する json は次のとおりです:
[[[768,1,"Javaone Keynote","http://javaone.com/keynote_large.jpg",1024],[240,0,"Javaone Keynote","http://javaone.com/keynote_small.jpg",320]],[262144,null,18000000,"video/mpg4",480,["Bill Gates","Steve Jobs"],0,58982400,"Javaone Keynote","http://javaone.com/keynote.mpg",640]]