You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by am...@apache.org on 2020/12/17 14:29:02 UTC
[ignite-3] branch ignite-13618 updated: Minor. Add more benchmarks.
This is an automated email from the ASF dual-hosted git repository.
amashenkov pushed a commit to branch ignite-13618
in repository https://gitbox.apache.org/repos/asf/ignite-3.git
The following commit(s) were added to refs/heads/ignite-13618 by this push:
new 17fc9ce Minor. Add more benchmarks.
17fc9ce is described below
commit 17fc9ce1b87af3179927a0bfabb6693a8d3a5210
Author: Andrew Mashenkov <an...@gmail.com>
AuthorDate: Thu Dec 17 02:42:11 2020 +0300
Minor. Add more benchmarks.
---
.../generator/ObjectMarshallerCodeGenerator.java | 2 +-
.../marshaller/generator/SerializerGenerator.java | 2 +-
.../generator/TupleColumnAccessCodeGenerator.java | 4 ++++
.../schema/marshaller/reflection/FieldAccessor.java | 5 ++---
.../internal/benchmarks/SerializerBenchmarkTest.java | 17 ++++++++++++++---
5 files changed, 22 insertions(+), 8 deletions(-)
diff --git a/modules/commons/src/main/java/org/apache/ignite/internal/schema/marshaller/generator/ObjectMarshallerCodeGenerator.java b/modules/commons/src/main/java/org/apache/ignite/internal/schema/marshaller/generator/ObjectMarshallerCodeGenerator.java
index 36d0a27..d1fa6d1 100644
--- a/modules/commons/src/main/java/org/apache/ignite/internal/schema/marshaller/generator/ObjectMarshallerCodeGenerator.java
+++ b/modules/commons/src/main/java/org/apache/ignite/internal/schema/marshaller/generator/ObjectMarshallerCodeGenerator.java
@@ -93,7 +93,7 @@ class ObjectMarshallerCodeGenerator implements MarshallerCodeGenerator {
/** {@inheritDoc} */
@Override public CodeBlock getValueCode(String objVar, int i) {
- return CodeBlock.of("FIELD_HANDLE_$L.get($L)", columnAccessessors[i].columnIdx(), objVar);
+ return CodeBlock.of("($T)FIELD_HANDLE_$L.get($L)", columnAccessessors[i].mappedType(), columnAccessessors[i].columnIdx(), objVar);
}
/** {@inheritDoc} */
diff --git a/modules/commons/src/main/java/org/apache/ignite/internal/schema/marshaller/generator/SerializerGenerator.java b/modules/commons/src/main/java/org/apache/ignite/internal/schema/marshaller/generator/SerializerGenerator.java
index cea5c62..33b8729 100644
--- a/modules/commons/src/main/java/org/apache/ignite/internal/schema/marshaller/generator/SerializerGenerator.java
+++ b/modules/commons/src/main/java/org/apache/ignite/internal/schema/marshaller/generator/SerializerGenerator.java
@@ -71,7 +71,7 @@ public class SerializerGenerator implements SerializerFactory {
//TODO: pass code to logger on trace level.
// System.out.println("Serializer code generated in " + TimeUnit.NANOSECONDS.toMicros(generation) + "us");
- // System.out.println(javaFile.toString());
+// System.out.println(javaFile.toString());
// Compile.
long compilation = System.nanoTime();
diff --git a/modules/commons/src/main/java/org/apache/ignite/internal/schema/marshaller/generator/TupleColumnAccessCodeGenerator.java b/modules/commons/src/main/java/org/apache/ignite/internal/schema/marshaller/generator/TupleColumnAccessCodeGenerator.java
index c6addcf..54fd30f 100644
--- a/modules/commons/src/main/java/org/apache/ignite/internal/schema/marshaller/generator/TupleColumnAccessCodeGenerator.java
+++ b/modules/commons/src/main/java/org/apache/ignite/internal/schema/marshaller/generator/TupleColumnAccessCodeGenerator.java
@@ -254,4 +254,8 @@ public class TupleColumnAccessCodeGenerator {
.build();
}
}
+
+ public Class<?> mappedType() {
+ return mappedType;
+ }
}
diff --git a/modules/commons/src/main/java/org/apache/ignite/internal/schema/marshaller/reflection/FieldAccessor.java b/modules/commons/src/main/java/org/apache/ignite/internal/schema/marshaller/reflection/FieldAccessor.java
index e8023fb..748ffec 100644
--- a/modules/commons/src/main/java/org/apache/ignite/internal/schema/marshaller/reflection/FieldAccessor.java
+++ b/modules/commons/src/main/java/org/apache/ignite/internal/schema/marshaller/reflection/FieldAccessor.java
@@ -30,12 +30,11 @@ import org.apache.ignite.internal.schema.TupleAssembler;
import org.apache.ignite.internal.schema.marshaller.BinaryMode;
import org.apache.ignite.internal.schema.marshaller.MarshallerUtil;
import org.apache.ignite.internal.schema.marshaller.SerializationException;
-import org.jetbrains.annotations.Nullable;
/**
* Field accessor to speedup access.
*/
-public abstract class FieldAccessor {
+abstract class FieldAccessor {
/** VarHandle. */
protected final VarHandle varHandle;
@@ -358,7 +357,7 @@ public abstract class FieldAccessor {
*/
public void read(Tuple reader, Object obj) throws SerializationException {
try {
- read0(reader, Objects.requireNonNull(obj));
+ read0(reader, obj);
}
catch (Exception ex) {
throw new SerializationException("Failed to read field [id=" + colIdx + ']', ex);
diff --git a/modules/commons/src/test/java/org/apache/ignite/internal/benchmarks/SerializerBenchmarkTest.java b/modules/commons/src/test/java/org/apache/ignite/internal/benchmarks/SerializerBenchmarkTest.java
index 1896573..a6b893a 100644
--- a/modules/commons/src/test/java/org/apache/ignite/internal/benchmarks/SerializerBenchmarkTest.java
+++ b/modules/commons/src/test/java/org/apache/ignite/internal/benchmarks/SerializerBenchmarkTest.java
@@ -71,7 +71,7 @@ public class SerializerBenchmarkTest {
private Factory<?> objectFactory;
/** Object fields count. */
- @Param({"10", "100"})
+ @Param({"0", "1", "10", "100"})
public int fieldsCount;
/** Serializer. */
@@ -100,8 +100,16 @@ public class SerializerBenchmarkTest {
rnd = new Random(seed);
- final Class<?> valClass = createGeneratedObjectClass(fieldsCount, Long.TYPE);
- objectFactory = new ObjectFactory<>(valClass);
+ final Class<?> valClass;
+
+ if (fieldsCount == 0) {
+ valClass = Long.class;
+ objectFactory = (Factory<Object>)rnd::nextLong;
+ }
+ else {
+ valClass = createGeneratedObjectClass(fieldsCount, long.class);
+ objectFactory = new ObjectFactory<>(valClass);
+ }
Columns keyCols = new Columns(new Column("key", LONG, true));
Columns valCols = mapFieldsToColumns(valClass);
@@ -140,6 +148,9 @@ public class SerializerBenchmarkTest {
* @return Columns for schema
*/
private Columns mapFieldsToColumns(Class<?> aClass) {
+ if (aClass == Long.class)
+ return new Columns(new Column("col0", LONG, true));
+
final Field[] fields = aClass.getDeclaredFields();
final Column[] cols = new Column[fields.length];