Optimize SubstatementContext size 65/87165/2
authorRobert Varga <robert.varga@pantheon.tech>
Fri, 24 Jan 2020 14:11:01 +0000 (15:11 +0100)
committerRobert Varga <nite@hq.sk>
Mon, 27 Jan 2020 12:50:05 +0000 (12:50 +0000)
commit79244c9c657423d5cf853952e6e00d1f687749ea
tree6b88c4baa1254c64be3fc1f86db9bb58c3fb8799
parentd70b1fa5aed64c15ba079e131243c7eed2f8ba03
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>
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