GitHub user michaelandrepearce opened a pull request:
https://github.com/apache/activemq-artemis/pull/1757
ARTEMIS-1586 Reduce GC pressure due to String allocations on Core protocol
@franz1981 i think this is cleaner merge of the two.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/michaelandrepearce/activemq-artemis
ARTEMIS-1586-FRANZ
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/activemq-artemis/pull/1757.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #1757
----
commit 4ab1fea88610e46381141223479aec97e7fa04ac
Author: Francesco Nigro <nigro.fra@...>
Date: 2018-01-04T14:22:05Z
ARTEMIS-1586 Reduce GC pressure due to String allocations on Core protocol
The commit contains:
- a general purpose interner implementation
- StringValue/SimpleString internrs specializations
- TypedProperties keys/values string interning for SessionSendMessage
decoding
commit 794e56da99456e891284709b790bf8144d65b0f9
Author: Michael André Pearce <michael.andre.pearce@...>
Date: 2018-01-08T18:45:18Z
ARTEMIS-1586 Refactor to make more generic
* Move byte util code into ByteUtil
* Re-use the new equals method in SimpleString
* Apply same pools/interners to client decode
* Create String to SimpleString pools/interners for property access via
String keys (producer and consumer benefits)
* Lazy init the pools on withing the get methods of CoreMessageObjectPools
to get the specific pool, to avoid having this scattered every where.
----
---