diff --git a/pom.xml b/pom.xml index b5519a8..df30ad6 100644 --- a/pom.xml +++ b/pom.xml @@ -89,6 +89,14 @@ 2.5 + + + + com.alibaba + fastjson + 1.2.12 + + com.squareup.moshi diff --git a/src/main/java/com/cowtowncoder/jsonperf/dzone/read/DZoneReadMapFastjson.java b/src/main/java/com/cowtowncoder/jsonperf/dzone/read/DZoneReadMapFastjson.java new file mode 100644 index 0000000..c00162f --- /dev/null +++ b/src/main/java/com/cowtowncoder/jsonperf/dzone/read/DZoneReadMapFastjson.java @@ -0,0 +1,33 @@ +package com.cowtowncoder.jsonperf.dzone.read; + +import java.util.Map; +import java.util.concurrent.TimeUnit; + +import org.openjdk.jmh.annotations.OutputTimeUnit; +import org.openjdk.jmh.annotations.Scope; +import org.openjdk.jmh.annotations.State; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.parser.Feature; + +@State(Scope.Thread) +@OutputTimeUnit(TimeUnit.SECONDS) +public class DZoneReadMapFastjson extends DZoneReadTestBase> +{ + + public DZoneReadMapFastjson() + { + } + + @SuppressWarnings("unchecked") + @Override + public Map _readItems(byte[] input) throws Exception { + return (Map) JSON.parse(input, Feature.DisableCircularReferenceDetect); + } + + @SuppressWarnings("unchecked") + @Override + public Map _readItems(String input) throws Exception { + return (Map) JSON.parse(input, Feature.DisableCircularReferenceDetect); + } +} diff --git a/src/main/java/com/cowtowncoder/jsonperf/dzone/read/DZoneReadPojoFastjson.java b/src/main/java/com/cowtowncoder/jsonperf/dzone/read/DZoneReadPojoFastjson.java new file mode 100644 index 0000000..470b9ae --- /dev/null +++ b/src/main/java/com/cowtowncoder/jsonperf/dzone/read/DZoneReadPojoFastjson.java @@ -0,0 +1,31 @@ +package com.cowtowncoder.jsonperf.dzone.read; + +import java.util.concurrent.TimeUnit; + +import org.openjdk.jmh.annotations.OutputTimeUnit; +import org.openjdk.jmh.annotations.Scope; +import org.openjdk.jmh.annotations.State; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.parser.Feature; +import com.cowtowncoder.jsonperf.dzone.MeasurementPOJO; + +@State(Scope.Thread) +@OutputTimeUnit(TimeUnit.SECONDS) +public class DZoneReadPojoFastjson extends DZoneReadTestBase +{ + + public DZoneReadPojoFastjson() + { + } + + @Override + public MeasurementPOJO _readItems(byte[] input) throws Exception { + return JSON.parseObject(input, MeasurementPOJO.class, Feature.DisableCircularReferenceDetect); + } + + @Override + public MeasurementPOJO _readItems(String input) throws Exception { + return JSON.parseObject(input, MeasurementPOJO.class, Feature.DisableCircularReferenceDetect); + } +} diff --git a/src/main/java/com/cowtowncoder/jsonperf/dzone/write/DZoneWriteFastjson.java b/src/main/java/com/cowtowncoder/jsonperf/dzone/write/DZoneWriteFastjson.java new file mode 100644 index 0000000..daf3c9b --- /dev/null +++ b/src/main/java/com/cowtowncoder/jsonperf/dzone/write/DZoneWriteFastjson.java @@ -0,0 +1,42 @@ +package com.cowtowncoder.jsonperf.dzone.write; + +import java.io.OutputStream; +import java.io.Writer; +import java.util.concurrent.TimeUnit; + +import org.openjdk.jmh.annotations.OutputTimeUnit; +import org.openjdk.jmh.annotations.Scope; +import org.openjdk.jmh.annotations.State; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.serializer.SerializerFeature; +import com.cowtowncoder.jsonperf.dzone.MeasurementPOJO; + +@State(Scope.Thread) +@OutputTimeUnit(TimeUnit.SECONDS) +public class DZoneWriteFastjson extends DZoneWriteTestBase +{ + + public DZoneWriteFastjson() + { + } + + @Override + public int _writeItems(MeasurementPOJO items, OutputStream out) throws Exception + { + JSON.writeJSONString(out, items, SerializerFeature.DisableCircularReferenceDetect); + return items.size(); + } + + @Override + public int _writeItems(MeasurementPOJO items, Writer out) throws Exception + { + JSON.writeJSONString(out, items, SerializerFeature.DisableCircularReferenceDetect); + return items.size(); + } + + @Override + public String _writeAsString(MeasurementPOJO items) throws Exception { + return JSON.toJSONString(items, SerializerFeature.DisableCircularReferenceDetect); + } +}