[ https://issues.apache.org/jira/browse/IGNITE-1770?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14969253#comment-14969253 ]
Vladimir Ozerov commented on IGNITE-1770: ----------------------------------------- Before digging into implementation I tried to measure optimized vs portable marshaller deserialization using JMH and sample "Address" class having two ints and two strings. Summary: Object size: Optimized: 60 bytes Poratble: 108 bytes Deserialization throughput: Optimized: 3.0KK ops/sec Portable: 2.6KK ops/sec The I implemented some draft optimizations on reading side: - Removed unnecessary ID mapper lookup on each field read; - Optimized field seek algorithm for sequential reads; - Delayed handles hash map creation when possible; - Get rid of manual string lower-casing. Results: Optimized: 3.0KK ops/sec Portable before: 2.6KK ops/sec Portable after: 4.8KK ops/sec As a next step I want to measure random field seek performance with and without proposed algorithm. Then I'll start implementation. > Portables: implement constant-time field lookup. > ------------------------------------------------ > > Key: IGNITE-1770 > URL: https://issues.apache.org/jira/browse/IGNITE-1770 > Project: Ignite > Issue Type: Task > Components: general, interop > Affects Versions: ignite-1.4 > Reporter: Vladimir Ozerov > Assignee: Vladimir Ozerov > Priority: Blocker > Fix For: 1.5 > > > See > https://cwiki.apache.org/confluence/display/IGNITE/Portable+object+constant-time+field+lookup -- This message was sent by Atlassian JIRA (v6.3.4#6332)