Optimize SubstatementContext size 67/87267/1
authorRobert Varga <robert.varga@pantheon.tech>
Fri, 24 Jan 2020 14:11:01 +0000 (15:11 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Wed, 29 Jan 2020 16:14:05 +0000 (17:14 +0100)
commitb607b68104fb453235795a56bcce627c5dcd0b85
tree1c388fee240067822012c4b1a7713570500b340c
parent2c6c0c64478c42ad2b91319403a80e55fd0e7d8e
Optimize SubstatementContext size

Class layout of SubstatementContext contains a set of flags in
StatementContextBase and SubstatementContext, both of which end up
being padded -- wasting 2-10 bytes in the padding alone.

Moving configuration/ignoreConfig/ignoreIfFeature to
StatementContextBase and allocating them as individual bits allows
us to eliminate internal losses in most cases, resulting in net
savings of 8 bytes per instance in the common case (64bit VM), i.e.
4.5-8.3%.

JIRA: YANGTOOLS-652
Change-Id: Ic63f75e9e8c1c25445bc7904c08a5691d1470b67
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit 79244c9c657423d5cf853952e6e00d1f687749ea)
yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/StatementContextBase.java
yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/SubstatementContext.java