From 02a8562d941bb7b4eeb1d2c3e63d44b7ef8c6cfb Mon Sep 17 00:00:00 2001 From: Oliver Gierke Date: Tue, 7 Aug 2018 18:39:39 +0200 Subject: [PATCH] #79 - Added benchmark for non-reflective constructor usage. --- .../convert/TypicalEntityReaderBenchmark.java | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/benchmark/commons/src/main/java/org/springframework/data/microbenchmark/commons/convert/TypicalEntityReaderBenchmark.java b/benchmark/commons/src/main/java/org/springframework/data/microbenchmark/commons/convert/TypicalEntityReaderBenchmark.java index a805e1f..18ffd35 100644 --- a/benchmark/commons/src/main/java/org/springframework/data/microbenchmark/commons/convert/TypicalEntityReaderBenchmark.java +++ b/benchmark/commons/src/main/java/org/springframework/data/microbenchmark/commons/convert/TypicalEntityReaderBenchmark.java @@ -104,6 +104,11 @@ public class TypicalEntityReaderBenchmark extends AbstractMicrobenchmark { return read(simpleEntityData, SimpleEntityWithConstructor.class, true); } + @Benchmark + public Object simpleEntityReflectiveConstructorArgsCreation() { + return read(simpleEntityData, SimpleEntityWithReflectiveConstructor.class, true); + } + @Benchmark public Object kotlinDataClass() { return read(simpleEntityData, MyDataClass.class, false); @@ -135,7 +140,18 @@ public class TypicalEntityReaderBenchmark extends AbstractMicrobenchmark { public String lastname; } - static class SimpleEntityWithConstructor { + static class SimpleEntityWithReflectiveConstructor { + + final String firstname; + final String lastname; + + public SimpleEntityWithReflectiveConstructor(String firstname, String lastname) { + this.firstname = firstname; + this.lastname = lastname; + } + } + + public static class SimpleEntityWithConstructor { final String firstname; final String lastname;