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); } /**
