IGNITE-1770: Optimization: cached ID mapper.

Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/920e755d
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/920e755d
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/920e755d

Branch: refs/heads/ignite-1770
Commit: 920e755d0d630267d1b085209685f59a16014022
Parents: f6fc097
Author: vozerov-gridgain <[email protected]>
Authored: Tue Oct 27 17:12:06 2015 +0300
Committer: vozerov-gridgain <[email protected]>
Committed: Tue Oct 27 17:12:06 2015 +0300

----------------------------------------------------------------------
 .../ignite/internal/portable/PortableReaderExImpl.java      | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/920e755d/modules/core/src/main/java/org/apache/ignite/internal/portable/PortableReaderExImpl.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/portable/PortableReaderExImpl.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/portable/PortableReaderExImpl.java
index 7dc1b21..1da288b 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/portable/PortableReaderExImpl.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/portable/PortableReaderExImpl.java
@@ -26,6 +26,7 @@ import org.apache.ignite.internal.util.typedef.internal.SB;
 import org.apache.ignite.internal.util.typedef.internal.U;
 import org.apache.ignite.lang.IgniteBiTuple;
 import org.apache.ignite.portable.PortableException;
+import org.apache.ignite.portable.PortableIdMapper;
 import org.apache.ignite.portable.PortableInvalidClassException;
 import org.apache.ignite.portable.PortableObject;
 import org.apache.ignite.portable.PortableRawReader;
@@ -152,6 +153,9 @@ public class PortableReaderExImpl implements 
PortableReader, PortableRawReaderEx
     /** Footer end. */
     private int footerEnd;
 
+    /** ID mapper. */
+    private PortableIdMapper idMapper;
+
     /**
      * @param ctx Context.
      * @param arr Array.
@@ -2509,7 +2513,10 @@ public class PortableReaderExImpl implements 
PortableReader, PortableRawReaderEx
 
         assert typeId != UNREGISTERED_TYPE_ID;
 
-        return ctx.fieldId(typeId, name);
+        if (idMapper == null)
+            idMapper = ctx.idMapper(typeId);
+
+        return idMapper.fieldId(typeId, name);
     }
 
     /**

Reply via email to