Details
-
Improvement
-
Status: Resolved
-
High
-
Resolution: Done
-
None
-
None
Description
Profiling performance of snapshot reads is showing that NormalizedNodeInputStreamReader.readQName() is dominating, taking 53% of total CPU cycles. Of this, 43% is spent in QNameFactory.create(String) and 19% creating Strings for that lookup.
Rework QNameFactory.create() to work on structured data holding namespace/revision/localName without having to concatenate, which will save the string manipulation as well as speeding up hash-based lookup (as component String hashcodes are likely to be pre-computed).
Attachments
Issue Links
- blocks
-
CONTROLLER-1898 Improve NormalizedNodeData{Input,Output} QName coding
-
- Resolved
-
- relates to
-
CONTROLLER-1900 Performance regression in cluster registration
-
- Resolved
-
| # | Subject | Branch | Project | Status | CR | V |
|---|---|---|---|---|---|---|
| 82275,3 | Update QNameFactory caching | master | controller | Status: MERGED | +2 | +1 |
| 82276,4 | Do not format QNames to string on input | master | controller | Status: MERGED | +2 | +1 |
| 82315,1 | Update QNameFactory caching | stable/neon | controller | Status: MERGED | -1 | +1 |
| 82316,1 | Do not format QNames to string on input | stable/neon | controller | Status: MERGED | -1 | +1 |
| 82492,3 | Update QNameFactory caching | stable/fluorine | controller | Status: MERGED | +2 | +1 |
| 82493,3 | Do not format QNames to string on input | stable/fluorine | controller | Status: MERGED | +2 | +1 |