package org.boon.json.serializer;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.boon.Boon;
import org.boon.json.JsonFactory;
import org.boon.json.JsonSerializerFactory;
import org.openjdk.jmh.annotations.GenerateMicroBenchmark;
import org.openjdk.jmh.annotations.OutputTimeUnit;
import org.openjdk.jmh.annotations.State;
import org.openjdk.jmh.logic.BlackHole;
import org.boon.json.serializers.impl.JsonSimpleSerializerImpl;
import java.util.Collections;
import java.util.Map;
import java.util.concurrent.TimeUnit;
@State
public class SerializerBasics {
static ObjectMapper mapper = new ObjectMapper();
//JsonSimpleSerializerImpl json2 = new JsonSimpleSerializerImpl(false, 30);
JsonSimpleSerializerImpl json = new JsonSimpleSerializerImpl();
static Map<String, String> hello = Collections.singletonMap("message", "Hello, world!");
public String serializerBasicBoon() {
return json.serialize(hello).toString();
}
//public String serializerBasicBoon2() {
// return json2.serialize(hello).toString();
//}
public String serializerBasicJackson() {
try {
return mapper.writeValueAsString(hello);
} catch (JsonProcessingException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
@GenerateMicroBenchmark
@OutputTimeUnit(TimeUnit.SECONDS)
public void serializerBasicBoonBench(BlackHole bh) throws Exception {
bh.consume(serializerBasicBoon());
}
// @GenerateMicroBenchmark
// @OutputTimeUnit(TimeUnit.SECONDS)
// public void serializerBasicBoonBench2(BlackHole bh) throws Exception {
// bh.consume(serializerBasicBoon2());
// }
@GenerateMicroBenchmark
@OutputTimeUnit(TimeUnit.SECONDS)
public void serializerBasicJackBench(BlackHole bh) throws Exception {
bh.consume(serializerBasicJackson());
}
}