From 9e1865a98d9350451d29dc837e053109d714d7e3 Mon Sep 17 00:00:00 2001 From: Otavio Santana Date: Wed, 3 Oct 2018 14:17:07 -0300 Subject: [PATCH 1/2] Optimazes Map with enum using the EnumMap implementation --- .../tinkerpop/gremlin/process/computer/GraphFilter.java | 5 +++-- .../traversal/strategy/optimization/GraphFilterStrategy.java | 4 ++-- .../gremlin/structure/util/star/StarGraphGryoSerializer.java | 3 ++- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/GraphFilter.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/GraphFilter.java index 3718d16d4f7..65d74d23441 100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/GraphFilter.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/GraphFilter.java @@ -31,6 +31,7 @@ import java.io.Serializable; import java.util.Collections; +import java.util.EnumMap; import java.util.HashMap; import java.util.Iterator; import java.util.Map; @@ -80,7 +81,7 @@ public boolean negative() { private Traversal.Admin vertexFilter = null; private Traversal.Admin edgeFilter = null; - private Map> edgeLegality = new HashMap<>(); + private Map> edgeLegality = new EnumMap<>(Direction.class); private boolean allowNoEdges = false; public GraphFilter() { @@ -118,7 +119,7 @@ public void setEdgeFilter(final Traversal edgeFilter) { throw GraphComputer.Exceptions.edgeFilterAccessesAdjacentVertices(edgeFilter); this.edgeFilter = edgeFilter.asAdmin().clone(); //// - this.edgeLegality = new HashMap<>(); + this.edgeLegality = new EnumMap<>(Direction.class); this.edgeLegality.put(Direction.OUT, new HashMap<>()); this.edgeLegality.put(Direction.IN, new HashMap<>()); this.edgeLegality.put(Direction.BOTH, new HashMap<>()); diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/strategy/optimization/GraphFilterStrategy.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/strategy/optimization/GraphFilterStrategy.java index c32777bfc18..cc0e6b41ea0 100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/strategy/optimization/GraphFilterStrategy.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/strategy/optimization/GraphFilterStrategy.java @@ -39,7 +39,7 @@ import org.apache.tinkerpop.gremlin.structure.util.empty.EmptyGraph; import java.util.Collections; -import java.util.HashMap; +import java.util.EnumMap; import java.util.HashSet; import java.util.Map; import java.util.Set; @@ -77,7 +77,7 @@ protected static Traversal.Admin getEdgeFilter(final Traversal.Adm return null; // if the traversal is an edge traversal, don't filter (this can be made less stringent) if (TraversalHelper.hasStepOfAssignableClassRecursively(LambdaHolder.class, traversal)) return null; // if the traversal contains lambdas, don't filter as you don't know what is being accessed by the lambdas - final Map> directionLabels = new HashMap<>(); + final Map> directionLabels = new EnumMap<>(Direction.class); final Set outLabels = new HashSet<>(); final Set inLabels = new HashSet<>(); final Set bothLabels = new HashSet<>(); diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/star/StarGraphGryoSerializer.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/star/StarGraphGryoSerializer.java index b2379cee45b..86bbf98e6d4 100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/star/StarGraphGryoSerializer.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/star/StarGraphGryoSerializer.java @@ -18,6 +18,7 @@ */ package org.apache.tinkerpop.gremlin.structure.util.star; +import java.util.EnumMap; import java.util.HashMap; import java.util.Map; @@ -34,7 +35,7 @@ */ public final class StarGraphGryoSerializer extends ShadedSerializerAdapter { - private static final Map CACHE = new HashMap<>(); + private static final Map CACHE = new EnumMap<>(Direction.class); static { CACHE.put(Direction.BOTH, new StarGraphGryoSerializer(Direction.BOTH)); From 48d5d1d4d33cd1d95354062764858e1a1b4e5d38 Mon Sep 17 00:00:00 2001 From: Otavio Santana Date: Wed, 3 Oct 2018 15:11:00 -0300 Subject: [PATCH 2/2] reverts class StarGraphGryoSerializer --- .../gremlin/structure/util/star/StarGraphGryoSerializer.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/star/StarGraphGryoSerializer.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/star/StarGraphGryoSerializer.java index 86bbf98e6d4..b2379cee45b 100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/star/StarGraphGryoSerializer.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/star/StarGraphGryoSerializer.java @@ -18,7 +18,6 @@ */ package org.apache.tinkerpop.gremlin.structure.util.star; -import java.util.EnumMap; import java.util.HashMap; import java.util.Map; @@ -35,7 +34,7 @@ */ public final class StarGraphGryoSerializer extends ShadedSerializerAdapter { - private static final Map CACHE = new EnumMap<>(Direction.class); + private static final Map CACHE = new HashMap<>(); static { CACHE.put(Direction.BOTH, new StarGraphGryoSerializer(Direction.BOTH));