Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,19 @@
<version>1.0.0</version>
</dependency>

<dependency>
<groupId>com.dslplatform</groupId>
<artifactId>dsl-json</artifactId>
<version>0.9.5</version>
</dependency>

<dependency>
<groupId>com.dslplatform</groupId>
<artifactId>dsl-json-processor</artifactId>
<version>0.4</version>
<scope>provided</scope>
</dependency>

</dependencies>

<build>
Expand All @@ -146,6 +159,10 @@
<configuration>
<source>1.7</source>
<target>1.7</target>
<annotationProcessors>
<annotationProcessor>com.dslplatform.json.CompiledJsonProcessor</annotationProcessor>
<annotationProcessor>org.openjdk.jmh.generators.BenchmarkProcessor</annotationProcessor>
</annotationProcessors>
<showDeprecation>true</showDeprecation>
<showWarnings>true</showWarnings>
<optimize>true</optimize>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
package com.cowtowncoder.jsonperf.dzone;

import com.dslplatform.json.CompiledJson;

import java.util.List;

/**
* Simple wrapper used to contain List of items to (de)serialize; used to avoid
* need to handle generic types like Lists for root values;
*/
@CompiledJson
public class MeasurementPOJO
{
public List<MeasurementRecord> items;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ public class MeasurementRecord
public long time;

// for deser
protected MeasurementRecord() { }
public MeasurementRecord() { }

public MeasurementRecord(String measurementId, MeasurementType type,
long duration, long time)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package com.cowtowncoder.jsonperf.dzone.read;

import com.cowtowncoder.jsonperf.dzone.MeasurementPOJO;
import com.dslplatform.json.DslJson;
import org.openjdk.jmh.annotations.OutputTimeUnit;
import org.openjdk.jmh.annotations.Scope;
import org.openjdk.jmh.annotations.State;

import java.util.concurrent.TimeUnit;

@State(Scope.Thread)
@OutputTimeUnit(TimeUnit.SECONDS)
public class DZoneReadPojoDslJson extends DZoneReadTestBase<MeasurementPOJO>
{
private final DslJson<Object> dsl;

public DZoneReadPojoDslJson()
{
dsl = new DslJson<>();
}

@Override
public MeasurementPOJO _readItems(byte[] input) throws Exception {
return dsl.deserialize(MeasurementPOJO.class, input, input.length);
}

@Override
public MeasurementPOJO _readItems(String input) throws Exception {
return _readItems(input.getBytes("UTF-8"));
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
package com.cowtowncoder.jsonperf.dzone.write;

import com.cowtowncoder.jsonperf.dzone.MeasurementPOJO;
import com.dslplatform.json.DslJson;
import com.dslplatform.json.JsonWriter;
import org.openjdk.jmh.annotations.OutputTimeUnit;
import org.openjdk.jmh.annotations.Scope;
import org.openjdk.jmh.annotations.State;

import java.io.OutputStream;
import java.io.Writer;
import java.util.concurrent.TimeUnit;

@State(Scope.Thread)
@OutputTimeUnit(TimeUnit.SECONDS)
public class DZoneWriteDslJson extends DZoneWriteTestBase
{
private final DslJson<Object> json;
private final JsonWriter writer;

public DZoneWriteDslJson()
{
json = new DslJson<>();
writer = new JsonWriter();
}

@Override
public int _writeItems(MeasurementPOJO items, OutputStream out) throws Exception
{
writer.reset();
json.serialize(writer, items);
writer.toStream(out);
return items.size();
}

@Override
public int _writeItems(MeasurementPOJO items, Writer out) throws Exception
{
writer.reset();
json.serialize(writer, items);
out.write(writer.toString());
return items.size();
}

@Override
public String _writeAsString(MeasurementPOJO items) throws Exception {
writer.reset();
json.serialize(writer, items);
return writer.toString();
}
}