[CONTROLLER-1897] Improve QNameFactory performance Created: 28/May/19 Updated: 12/Jun/19 Resolved: 12/Jun/19 |
|
| Status: | Resolved |
| Project: | controller |
| Component/s: | clustering |
| Affects Version/s: | None |
| Fix Version/s: | Sodium, Neon SR2 |
| Type: | Improvement | Priority: | High |
| Reporter: | Robert Varga | Assignee: | Robert Varga |
| Resolution: | Done | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||||||
| 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). |
| Comments |
| Comment by Robert Varga [ 11/Jun/19 ] |
|
|