You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@asterixdb.apache.org by lu...@apache.org on 2018/05/22 20:06:57 UTC
asterixdb git commit: [NO ISSUE][RT] Eliminate HashMap lookup during
comparision
Repository: asterixdb
Updated Branches:
refs/heads/master 81c80d3f9 -> ed6761554
[NO ISSUE][RT] Eliminate HashMap lookup during comparision
- user model changes: no
- storage format changes: no
- interface changes: no
Details:
- Eliminate the use of hash map to store type tags. Replace it with a
simple TypeTag[] to improve performance.
Change-Id: Ie5b8efdcb226a8818deaf57a6305a18107544feb
Reviewed-on: https://asterix-gerrit.ics.uci.edu/2655
Sonar-Qube: Jenkins <je...@fulliautomatix.ics.uci.edu>
Reviewed-by: Michael Blow <mb...@apache.org>
Tested-by: Jenkins <je...@fulliautomatix.ics.uci.edu>
Contrib: Jenkins <je...@fulliautomatix.ics.uci.edu>
Reviewed-by: Taewoo Kim <wa...@gmail.com>
Integration-Tests: Jenkins <je...@fulliautomatix.ics.uci.edu>
Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo
Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/ed676155
Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/ed676155
Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/ed676155
Branch: refs/heads/master
Commit: ed676155495ab95937f6a5482dd8712e90f41fe5
Parents: 81c80d3
Author: luochen01 <cl...@uci.edu>
Authored: Tue May 22 09:25:25 2018 -0700
Committer: Luo Chen <cl...@uci.edu>
Committed: Tue May 22 13:06:40 2018 -0700
----------------------------------------------------------------------
.../org/apache/asterix/om/types/EnumDeserializer.java | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ed676155/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/EnumDeserializer.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/EnumDeserializer.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/EnumDeserializer.java
index 05f265c..f2d1f1a 100644
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/EnumDeserializer.java
+++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/EnumDeserializer.java
@@ -18,24 +18,25 @@
*/
package org.apache.asterix.om.types;
-import java.util.HashMap;
-import java.util.Map;
+import java.lang.reflect.Array;
public class EnumDeserializer<E extends Enum<E> & IEnumSerializer> {
public static final EnumDeserializer<ATypeTag> ATYPETAGDESERIALIZER =
new EnumDeserializer<ATypeTag>(ATypeTag.class);
- private Map<Byte, E> enumvalMap = new HashMap<Byte, E>();
+ private final E[] enumvalMap;
+ @SuppressWarnings("unchecked")
private EnumDeserializer(Class<E> enumClass) {
+ enumvalMap = (E[]) Array.newInstance(enumClass, Byte.MAX_VALUE);
for (E constant : enumClass.getEnumConstants()) {
- enumvalMap.put(constant.serialize(), constant);
+ enumvalMap[constant.serialize()] = constant;
}
}
public E deserialize(byte value) {
- return enumvalMap.get(value);
+ return enumvalMap[value];
}
}